12 из 210 вопросов — случайная выборка · Ответьте на все и узнайте свой результат
C++ · Object Lifecycle & Exceptions
Почему выбрасывание сырого целого числа (например, throw 42;) считается плохой практикой в C++?
throw 42;
Целые числа вообще нельзя выбрасывать в C++; компилятор отвергнет это
Это делает обработку исключений негибкой, так как оно не может быть перехвачено через std::exception и не предоставляет контекстную информацию
std::exception
Целые числа всегда перехватываются любым блоком catch(...), обходя типизированные обработчики
catch(...)
Выбрасывание целых чисел вызывает повреждение стека в большинстве компиляторов