C++ предоставляет нам структурированный и более элегантный механизм обработки исключений . Этот структурированный механизм может разделить нормально исполняемый код и части программы, обрабатывающие исключения, делая программу более понятной и более элегантной.
Далее давайте посмотрим на структуру обработки исключений , которая разделена на две части:
try{//Обычный оператор выполнения программы throw(выражение типа исключения);}catch(тип исключения 1){//код обработки исключения}catch(тип исключения 2){//код обработки исключения}catch(тип исключения 3){ / /Код обработки исключений}//Следующий код
Выше приведена кодовая форма обработки исключений в C++ с использованием трех ключевых слов try , throw и catch .
При выполнении кода он сначала встречает блок кода try. Его функция состоит в том, чтобы запустить механизм обработки исключений, обнаружить исключения, возникшие во время выполнения кода try, а затем выдать их через throw. Выражение типа исключения в throw имеет вид. постоянное или переменное выражение. Затем он будет сопоставлен (захвачен) со следующим блоком операторов catch, а затем будет выполнен соответствующий код. Если соответствующий тип не найден, продолжите выполнение. Если совпадение не найдено, автоматически вызывается функция завершения() . Функция по умолчанию — abort() для завершения программы.
Ниже приведена обработка исключения, когда делитель равен 0 во время операции деления:
#include<iostream>usingnamespacestd;intmain(){inta,b;cin>>a>>b;try{if(b==0)throwerror!b<0;}catch(constchar*str){cout<<str <<endl;}catch(int){cout<<throwint<<endl;}return0;}
Видно, что при попытке, если b окажется равным 0, будет выдана строка, а затем будет введено совпадение. Очевидно, будет сопоставлено первое совпадение, и будет выведено значение str. понимать!