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

解決


越初心者  2005-08-22 17:40:25  No: 58712  IP: [192.*.*.*]

try
{
}
catch(...)
{
}

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

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

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

編集 削除
YuO  2005-08-22 18:20:09  No: 58713  IP: [192.*.*.*]

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

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

編集 削除
超初心者  2005-08-22 20:39:37  No: 58714  IP: [192.*.*.*]

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

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

編集 削除
YuO  2005-08-22 21:37:57  No: 58715  IP: [192.*.*.*]

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

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

編集 削除
超初心者  2005-08-23 08:54:50  No: 58716  IP: [192.*.*.*]

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

編集 削除