Тип exception в C++
В языке C++ исключения описываются типом exception, определенном в заголовочном файле <exception>. Рассмотрим обработку исключений на примере:
Итак, объект типа std::exception передается оператору throw. Этот объект инициализируется строкой "Division by zero!", передающей информацию о характере ошибки.
Если вы хотите отловить исключения типа exception, необходимо в выражении catch определить переменную этого типа:
В данном случае err представляет переменную exception-типа. При этом совсем необязательно определять переменную именно в качестве константной ссылки, так как можно определить ее и следующим образом:
Если же у вас нет намерения применять эту переменную в блоке catch, можно просто указать тип исключения:
Кроме того, важно отметить различия в реализации компиляторов. К примеру, Visual Studio позволит инициализировать объект exception с помощью строки. К примеру, вы можете передать сообщение об ошибке:
А уже посредством метода
Правда, в том же g++ данный код работать не будет, ведь тип exception для g++ нельзя инициализировать строкой.
По материалам https://metanit.com/.