Изучаю по книге Страуструпа. Возникла проблема, если писать вот такой код
if (true)
{
error("ошибка");
}
То он не пишет ошибку, а перекидывает в заголовочный файл std_lib_facilities.h. И пишет что там необработнное исключение, что это значит и как исправить?
Так а тут нечего исправлять, так и было задумано в программе )
Если запускать не в режиме отладки в VS, то не кинет. Или где-то нажать кнопку, что продолжить. Оно просто для удобства останавливает на всех не пойманных try catch исключениях.
Понял, я попробовал без отладки запустить, теперь пишет так. Я просто хотел чтобы он вывел то что в ковычках написано, а не получается. Как это решить теперь?)
Собирай релизную конфигурацию проекта. Там не будет отладочной части рантайма.
When an exception is not caught and handled by a try-catch block, it is considered an unhandled exception. The behavior of an unhandled exception depends on the operating system. The operating system typically notifies the user that an unhandled exception error has occurred, and the program may crash or display an error message.
он - это windows. Это коммерческий продукт. Ответ на ваш вопрос следует искать искать в техподдержке компании, в которой вы купили лицензию (вроде в стоимость лицензии входят ответы на два ваших вопроса).
На консоль он это выводить не будет, но один из способов отслеживать необработанные исключения в Windows - это использовать Windows Event Viewer. Это полезно, когда программа будет не консольной а сервисом (сами узнайте что это такое и в чём разница).
Вообще, возможно, человеку было бы достаточно, если бы ему предложили использовать вместо функции error, поток std::cerr или файл stderr если по-сишному.