代码是从:http://www.cplusplus.com/referen ... /?kw=set_unexpected找的
// set_unexpected example #include <iostream> // std::cerr #include <exception> // std::set_unexpected void 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
时间: 2024-11-09 00:58:00