C++ nos fornece um mecanismo de tratamento de exceções estruturado e mais elegante. Esse mecanismo estruturado pode separar o código normalmente executado e as partes de tratamento de exceções do programa, tornando o programa mais claro e fácil de ler.
A seguir, vejamos a estrutura do tratamento de exceções , que é dividida em duas partes:
try{//Instrução de execução normal do programa throw(Expressão do tipo de exceção);}catch(Tipo de exceção 1){//Código de tratamento de exceção}catch(Tipo de exceção 2){//Código de tratamento de exceção}catch(Tipo de exceção 3){ / /Código de tratamento de exceção}//Código a seguir
A descrição acima é a forma de código de tratamento de exceções em C++, usando as três palavras-chave try , throw e catch .
Quando o código é executado, ele primeiro encontra o bloco de código try. Sua função é iniciar o mecanismo de tratamento de exceções, detectar as exceções encontradas durante a execução do código try e, em seguida, lançá-lo por meio de throw. uma expressão constante ou variável. Em seguida, ele será combinado (capturado) com o seguinte bloco de instrução catch e, em seguida, o código correspondente será executado. Se nenhum tipo correspondente for encontrado, continue a execução. Se nenhuma correspondência for encontrada, a função termina() é chamada automaticamente. A função padrão é abort() para encerrar o programa.
A seguir está um tratamento de exceção quando o divisor é 0 durante a operação de divisão:
#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;}
Pode-se ver que no try, se b for 0, uma string será lançada e então a correspondência catch será inserida. Obviamente, a primeira captura será correspondida e o valor de str será gerado. entender!