История изменений
Исправление monk, (текущая версия) :
ловишь в main все необработанные исключения, пишешь - unhandled exception catched
Там уже поздно. Так уже проще std::set_terminate прицепить.
Проблема в том, что исключения используют для восстановимых ошибок. А то, что они могут прилететь откуда угодно, заставляет писать программы, которые не должны внезапно падать, в стиле:
for(auto a : get_data()) {
try {
x = x + а.d1 * a.d2;
} catch(...) {}; // игнорируем недокументированное
}
~foo::foo()
{
try {
somecode();
} catch(...) {}; // в деструкторе нельзя исключения
}
Исходная версия monk, :
ловишь в main все необработанные исключения, пишешь - unhandled exception catched
Там уже поздно. Так уже проще std::set_terminate прицепить.
Проблема в том, что исключения используют для восстановимых ошибок. А то, что они могут прилететь откуда угодно, заставляет писать программы, которые не должны внезапно падать, в стиле:
for(auto a : get_data()) {
try {
x = x + а.d1 * a.d2;
} catch(...) {}; // игнорируем недокументированное
}
~foo::foo()
{
try {
} catch(...) {}; // в деструкторе нельзя исключения
}