C ++ nos proporciona un mecanismo de manejo de excepciones estructurado y más elegante. Este mecanismo estructurado puede separar el código ejecutado normalmente y las partes de manejo de excepciones del programa, lo que hace que el programa sea más claro y fácil de leer.
A continuación, veamos la estructura del manejo de excepciones , que se divide en dos partes:
try{//Sentencia de ejecución normal del programa throw(Expresión de tipo de excepción);}catch(Tipo de excepción 1){//Código de manejo de excepciones}catch(Tipo de excepción 2){//Código de manejo de excepciones}catch(Tipo de excepción 3){ / /Código de manejo de excepciones}//Código siguiente
Lo anterior es la forma de código para el manejo de excepciones en C++, utilizando las tres palabras clave try , throw y catch .
Cuando se ejecuta el código, primero encuentra el bloque de código de prueba. Su función es iniciar el mecanismo de manejo de excepciones, detectar las excepciones encontradas durante la ejecución del código de prueba y luego lanzarlo. La expresión del tipo de excepción en throw es. una expresión constante o variable. A continuación, se comparará (capturará) con el siguiente bloque de declaración de captura y luego se ejecutará el código correspondiente. Si no se encuentra ningún tipo coincidente, continúe la ejecución. Si no se encuentra ninguna coincidencia, se llama automáticamente a la función terminar() . La función predeterminada es abortar() para finalizar el programa.
El siguiente es un manejo de excepciones cuando el divisor es 0 durante la operación de división:
#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;}
Se puede ver que en el intento, si se encuentra que b es 0, se generará una cadena y luego se ingresará la coincidencia de captura. Obviamente, la primera captura coincidirá y se generará el valor de str. ¡entender!