try & catch でエラーコードを取得するには

解決


越初心者  2005-08-23 02:40:25  No: 58712

try
{
}
catch(...)
{
}

のようにしてエラーを判定したいのですが、
catch文の中でエラーの原因を数字で判定する方法が分からなくて困っています。

catch(CException* e)
{
    char szErrorMsg[ 256 ];
    e->GetErrorMessage( szErrorMsg, 255 );
}
のようにすればエラーの原因を文字で取得できることは分かっているのですが,あくまで数字でエラーコードを取得したいのです。

おわかりになる方,どうかご教授願います。
数字にこだわる理由については不問の方向でお願いします。


YuO  2005-08-23 03:20:09  No: 58713

「エラーコード」とは何のことを言っているのですか?

自分で作った例外であれば,
class Exception {
    const int code_;
public:
    Exception (int code) : code_(code) {}
    int GetCode () const { return code_; }
};
というふうにすることで取得できますが。


超初心者  2005-08-23 05:39:37  No: 58714

>エラーコード
VBでは、ゼロ割が発生したら●番、オーバーフローが起きれば×番……みたいな感じで、エラーごとに固有の番号が割り当てられているのですが、C++にはそのようなものはないのでしょうか。

errnoというグローバル変数があるようですが、catchの中でerrnoの値を参照してみましても値は0でした。


YuO  2005-08-23 06:37:57  No: 58715

> VBでは、ゼロ割が発生したら●番、オーバーフローが起きれば×番……みたいな感じで、エラーごとに固有の番号が割り当てられているのですが、C++にはそのようなものはないのでしょうか。

ないです。
エラーの原因は型自身であらわすのが普通です。


超初心者  2005-08-23 17:54:50  No: 58716

YuO様、ありがとうございました。
エラーコードの取得は諦めます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加