Я всегда обертываю самую внешнюю функцию в try-catch следующим образом:
int main()
{
try {
// start your program/function
Program program; program.Run();
}
catch (std::exception& ex) {
std::cerr << ex.what() << std::endl;
}
catch (...) {
std::cerr << "Caught unknown exception." << std::endl;
}
}
Это поймает все.Хорошая обработка исключений в C ++ не сводится к написанию try-catch повсюду, а к тому, чтобы понять, где вы знаете, как с этим справиться (как вы, похоже, и хотите).В этом случае единственное, что нужно сделать, - это написать сообщение об ошибке в stderr, чтобы пользователь мог на него воздействовать.