我正在使用 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”。