代码是从:找的
// set_unexpected example#include// std::cerr#include // std::set_unexpectedvoid myunexpected() { std::cerr << "unexpected called\n"; throw 0; // throws int (in exception-specification)}void myfunction() throw (int) { throw 'x'; // throws char (not in exception-specification)}int main(void) { std::set_unexpected(myunexpected); try { myfunction(); } catch (int) { std::cerr << "caught int\n"; } catch (...) { std::cerr << "caught some other exception type\n"; } return 0;}
在windows下编译运行之后myunexpected没有被调用
ubuntu下试了一下,没有问题,求解
查看:http://stackoverflow.com/questions/10056909/exception-handling-set-unexpected-not-able-to-call