Тип exception в C++ | OTUS

Тип exception в C++

В языке C++ исключения описываются типом exception, определенном в заголовочном файле <exception>. Рассмотрим обработку исключений на примере:

1-1801-3b4634.png

Итак, объект типа std::exception передается оператору throw. Этот объект инициализируется строкой "Division by zero!", передающей информацию о характере ошибки.

2-1801-3d9b22.png

Если вы хотите отловить исключения типа exception, необходимо в выражении catch определить переменную этого типа:

3-1801-f4db5c.png

В данном случае err представляет переменную exception-типа. При этом совсем необязательно определять переменную именно в качестве константной ссылки, так как можно определить ее и следующим образом:

4-1801-75b976.png

Если же у вас нет намерения применять эту переменную в блоке catch, можно просто указать тип исключения:

5-1801-e96c19.png

Кроме того, важно отметить различия в реализации компиляторов. К примеру, Visual Studio позволит инициализировать объект exception с помощью строки. К примеру, вы можете передать сообщение об ошибке:

6-1801-5f90b3.png

А уже посредством метода what() в блоке catch есть возможность получить переданное сообщение и, например, осуществить его вывод на консоль:

7-1801-554cbb.png

Правда, в том же g++ данный код работать не будет, ведь тип exception для g++ нельзя инициализировать строкой.

По материалам https://metanit.com/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто