我希望下面的代码调用我的意外处理程序,但我的终止处理程序被调用:
#include <except>
#include <iostream>
void my_terminate() {
std::cerr << "my terminate handler";
std::exit(0);
}
void my_unexpected() {
std::cerr << "my unexpected handler";
std::exit(EXIT_FAILURE);
}
#pragma argsused
int main(int argc, char* argv[])
{
std::set_terminate(my_terminate);
std::set_unexpected(my_unexpected);
try {
throw std::exception();
} catch (const std::logic_error&) {
}
return 0;
}
C++ Builder 6 开发人员指南明确鼓励通过set_unexpected()
. 我在做什么错,或者这只是 C++-Builder 6 中的一个错误?