AM Daemon ライブラリリファレンス
公開メンバ関数 | 全メンバ一覧
amdaemon::Exception クラス

AM Daemon の例外クラス。 [詳解]

#include <Exception.h>

exceptionを継承しています。

公開メンバ関数

 Exception (ExceptionCategory category, const wchar_t *file, int line, const wchar_t *func, const wchar_t *message, const char *whatFile, const char *whatFunc)
 コンストラクタ。 [詳解]
 
 Exception (const Exception &src)
 コピーコンストラクタ。 [詳解]
 
 Exception (Exception &&src)
 ムーブコンストラクタ。 [詳解]
 
 ‾Exception () throw ()
 デストラクタ。 [詳解]
 
Exceptionoperator= (const Exception &r)
 コピー代入演算子のオーバロード。 [詳解]
 
Exceptionoperator= (Exception &&r)
 ムーブ代入演算子のオーバロード。 [詳解]
 
const char * what () const override
 例外文字列を取得する。 [詳解]
 
ExceptionCategory getCategory () const
 例外カテゴリを取得する。 [詳解]
 
const wchar_t * getFile () const
 例外発生時のファイル名を取得する。 [詳解]
 
int getLine () const
 例外発生時のファイル行番号を取得する。 [詳解]
 
const wchar_t * getFunction () const
 例外発生時の関数名を取得する。 [詳解]
 
const wchar_t * getMessage () const
 例外発生時の付随メッセージを取得する。 [詳解]
 
const ::amdaemon::util::StackTracegetStackTrace () const
 例外発生時のスタックトレース情報を取得する。 [詳解]
 
const wchar_t * toString (bool withoutStackTrace=false) const
 例外情報を文字列化する。 [詳解]
 

詳解

AM Daemon の例外クラス。

既定ではライブラリ内で例外が発生するとこのクラスのインスタンスがスローされる。

C++標準の例外情報に加え、例外発生位置やスタックトレースの情報を保持している。 メンバ関数 toString によりそれらの情報をまとめて文字列化できる。

Core クラスのメンバ関数 Core::setExceptionHook を用いてライブラリに例外フック関数を設定することで、 例外をスローさせる代わりにこのクラスのインスタンスを受け取って処理することができる。 例外をスローしないようにすることもでき、 その場合のライブラリ側の挙動は例外カテゴリに依存する。 詳細は各 ExceptionCategory 列挙値の説明を参照すること。

構築子と解体子

amdaemon::Exception::Exception ( ExceptionCategory  category,
const wchar_t *  file,
int  line,
const wchar_t *  func,
const wchar_t *  message,
const char *  whatFile,
const char *  whatFunc 
)

コンストラクタ。

引数
[in]category例外カテゴリ。
[in]file例外発生時のファイル名。不明ならば nullptr 。
[in]line例外発生時のファイル行番号。不明ならば負数。
[in]func例外発生時の関数名。不明ならば nullptr 。
[in]message例外発生時の付随メッセージ。無いならば nullptr 。
[in]whatFile例外メッセージ用のファイル名。不明ならば nullptr 。
[in]whatFunc例外メッセージ用の関数名。不明ならば nullptr 。

通常、このコンストラクタを直接呼び出すことはなく、 AMDAEMON_MAKE_EXCEPTION マクロまたは AMDAEMON_MAKE_EXCEPTION_MSG マクロを 用いてインスタンスを生成するか、 AMDAEMON_RAISE_EXCEPTION マクロまたは AMDAEMON_RAISE_EXCEPTION_MSG マクロを 用いて例外を発生させる。

amdaemon::Exception::Exception ( const Exception src)

コピーコンストラクタ。

引数
[in]srcコピー元。
amdaemon::Exception::Exception ( Exception &&  src)

ムーブコンストラクタ。

引数
[in]srcムーブ元。
amdaemon::Exception::‾Exception ( )
throw (
)

デストラクタ。

関数詳解

Exception& amdaemon::Exception::operator= ( const Exception r)

コピー代入演算子のオーバロード。

引数
[in]r右辺値。
戻り値
自身の参照。
Exception& amdaemon::Exception::operator= ( Exception &&  r)

ムーブ代入演算子のオーバロード。

引数
[in]r右辺値。
戻り値
自身の参照。
const char* amdaemon::Exception::what ( ) const
override

例外文字列を取得する。

戻り値
例外文字列。
ExceptionCategory amdaemon::Exception::getCategory ( ) const

例外カテゴリを取得する。

戻り値
例外カテゴリ。不明ならば ExceptionCategory::Unknown
const wchar_t* amdaemon::Exception::getFile ( ) const

例外発生時のファイル名を取得する。

戻り値
例外発生時のファイル名。不明ならば空文字列。
int amdaemon::Exception::getLine ( ) const

例外発生時のファイル行番号を取得する。

戻り値
例外発生時のファイル行番号。不明ならば -1 。
const wchar_t* amdaemon::Exception::getFunction ( ) const

例外発生時の関数名を取得する。

戻り値
例外発生時の関数名。不明ならば空文字列。
const wchar_t* amdaemon::Exception::getMessage ( ) const

例外発生時の付随メッセージを取得する。

戻り値
例外発生時の付随メッセージ。無いならば空文字列。
const ::amdaemon::util::StackTrace& amdaemon::Exception::getStackTrace ( ) const

例外発生時のスタックトレース情報を取得する。

戻り値
例外発生時のスタックトレース情報。不明ならば空のスタックトレース情報。
  • ライブラリをリンクするプロジェクトのリンカオプションで /DEBUG が指定されており、 かつデバッグ情報を参照可能な状態の場合、 シンボル名やファイル名を含む完全なスタックトレース情報を取得できる。
  • /DEBUG が指定されていない場合やデバッグ情報を参照できない状態の場合、 スタックアドレスのみ取得できる。

デバッグ情報は、VC++の既定のリンカオプションではPDBファイルとして出力される。 このPDBファイルが実行可能ファイルと同じ位置にある場合にデバッグ情報を参照可能となる。

const wchar_t* amdaemon::Exception::toString ( bool  withoutStackTrace = false) const

例外情報を文字列化する。

引数
[in]withoutStackTraceスタックトレースの情報を含めないならば true 。
戻り値
例外情報文字列。

このクラス詳解は次のファイルから抽出されました: