私はVC2010を使用しており、次のコードを書いて「set_unexpected」機能をテストしています。
#include <iostream>
#include <exception>
void my_unexpected_handler()
{
std::cout << "unexpected handler" << std::endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
set_unexpected(my_unexpected_handler);
throw 1;
return 0;
}
ただし、「my_unexpected_handler」は呼び出されません (文字列はコンソールに出力されません。my_unexpected_handler にブレークポイントを設定しようとしましたが、実行されませんでした)。
コードの何が問題になっていますか?
ありがとう
申し訳ありませんが、予期しない例外を誤解していました。ただし、コードを次のように変更しても
#include <iostream>
#include <exception>
void my_unexpected_handler()
{
std::cout << "unexpected handler" << std::endl;
}
void func() throw(int)
{
throw 'h';
}
int _tmain(int argc, _TCHAR* argv[])
{
std::set_unexpected(my_unexpected_handler);
func();
return 0;
}
それはまだ動作しませんか?つまり、「my_unexpected_handler」は呼び出されません。