try
{
}
catch(...)
{
}
のようにしてエラーを判定したいのですが、
catch文の中でエラーの原因を数字で判定する方法が分からなくて困っています。
catch(CException* e)
{
char szErrorMsg[ 256 ];
e->GetErrorMessage( szErrorMsg, 255 );
}
のようにすればエラーの原因を文字で取得できることは分かっているのですが,あくまで数字でエラーコードを取得したいのです。
おわかりになる方,どうかご教授願います。
数字にこだわる理由については不問の方向でお願いします。
「エラーコード」とは何のことを言っているのですか?
自分で作った例外であれば,
class Exception {
const int code_;
public:
Exception (int code) : code_(code) {}
int GetCode () const { return code_; }
};
というふうにすることで取得できますが。
>エラーコード
VBでは、ゼロ割が発生したら●番、オーバーフローが起きれば×番……みたいな感じで、エラーごとに固有の番号が割り当てられているのですが、C++にはそのようなものはないのでしょうか。
errnoというグローバル変数があるようですが、catchの中でerrnoの値を参照してみましても値は0でした。
> VBでは、ゼロ割が発生したら●番、オーバーフローが起きれば×番……みたいな感じで、エラーごとに固有の番号が割り当てられているのですが、C++にはそのようなものはないのでしょうか。
ないです。
エラーの原因は型自身であらわすのが普通です。
YuO様、ありがとうございました。
エラーコードの取得は諦めます。
ツイート | ![]() |