Manejo de excepciones C ++

Manejo de excepciones C ++
La excepción es cualquier comportamiento anormal o error de tiempo de ejecución. La excepción es una situación convincente en nuestro programa donde nuestro programa debe estar listo para manejarlo con la respuesta adecuada.

Donde ocurre la excepción

Cada vez que ejecutamos cualquier software, esperamos que nuestro software funcione correctamente en cualquier situación. Pero en algunos casos, algunos eventos ocurren cuando se detiene el flujo normal de ejecución de nuestro software. Entonces, cuando decimos que nuestro software debe ser robusto, significa que el software funciona correctamente en cualquier situación.

Manejo de excepciones

El manejo de excepciones de C ++ se usa para manejar la condición de error en un programa sistemáticamente tomando las medidas necesarias. Usando el manejo de excepciones, podemos administrar y responder fácilmente al error de tiempo de ejecución.

Prueba, atrapa, tira

  1. Si se produce una situación excepcional en nuestro programa, lo contenemos en un bloque llamado intentar bloquear.
  2. Si se produce alguna excepción dentro del bloque de try, debe lanzarse utilizando la palabra clave tirar.
  3. Esa excepción es atrapada por el atrapar bloquear. En el bloque de captura se toman medidas necesarias para manejar la excepción.

Sintaxis

intentar

Catch (Type1 Arg)

Catch (Type2 Arg)

----------
Catch (typen arg)

Explicación
En primer lugar, solemos escribir la palabra clave intentar. Después de finalizar el bloque de try, tenemos que escribir atrapar bloque inmediatamente. Podemos escribir múltiples bloques de captura en secuencia. Pero donde el trate de bloqueo del bloque, todos los bloques de captura deben escribirse de inmediato. Si no escribimos el bloque de captura inmediato después del bloque de try, puede ocurrir un error. Usamos tirar Palabra clave dentro del bloque de prueba.

Programación Ejemplo 1

# incluir
Usando el espacio de nombres STD;
int main ()

cout<< “ Exception Handling Program :” ;
intentar
tirar 30;
cout<< “ \n Try ” ;

Catch (int e)
cout<< “ \n Exception no : ” << e ;

cout<< “ \n Testing The Last Line ” ;

Producción

Explicación de programación
En este ejemplo de programación, estamos tratando de mostrar cómo ocurre la excepción y cómo manejarla. Dentro de la función principal después de escribir una declaración de salida que utilizamos intentar bloquear. Tirar La palabra clave se usa dentro del bloque de try. Después de la palabra clave, usamos un número 30. Puede ser una cadena, o una doble o un flotador, cualquier constante que podamos usar. Luego escribimos una declaración de cout. Pero esta línea no se puede ejecutar después de la ejecución del lanzamiento. Después de terminar el bloque de try, escribimos el bloque de captura inmediatamente. Dentro del bloque de captura escribimos la línea (int e). Con la ayuda de la palabra clave de lanzar cuyo valor lanzaremos, ese valor entrará dentro de la variable E. Después de finalizar el bloque de captura, escribimos una declaración de salida "\ n probando la última línea". Ahora, la pregunta es cuándo se ejecutará esta línea después de la declaración de salida dentro del bloque de captura?

Reglas de prueba, captura y bloque de lanzamiento

  1. Si escribimos el bloque de try, tenemos que escribir el bloque de captura.
  2. Si escribimos solo un bloque de captura y no escribimos ningún bloque de tráfico y lanzamiento, se producirá un error.
  3. Si escribimos un bloque de lanzamiento y captura y no escribimos ningún bloque de try, se producirá un error.
  4. Si escribimos solo lanza y no escribimos ningún bloque de intento y captura, no ocurrirá ningún error. Significa que podemos escribir lanzamiento sin escribir el bloque de try.
  5. Si escribimos un bloque de captura múltiple con diferentes tipos de argumentos en secuencia, que el valor de lanzamiento coincidirá con el tipo de argumento de captura, lo aceptará. Entonces no se ejecutará ningún otro bloque de captura. El ejemplo de programación se da a continuación.

Programación Ejemplo 2

# incluir
Usando el espacio de nombres STD;
int main ()

cout<< “ Exception Handling Program :” ;
intentar
if (i == 1)
tirar 1;
if (i == 2)
tirar 2;
if (i == 3)
tirar 3;
cout<< “ \n Try ” ;

Catch (doble e)
cout<< “ \n Exception no : ” << e ;

Catch (int e)
cout<< “ \n Exception no : ” << e ;

cout<< “ \n Testing The Last Line ” ;

Producción

F. Podemos escribir múltiples declaraciones de lanzamiento en un solo bloque de try.

Programación Ejemplo 3

# incluir
usando el espacio de nombres STD;
int main ()

int i = 3;
cout<< “ Exception Handling Program :” ;
intentar
if (i == 1)
tirar 1;
if (i == 2)
tirar 2;
if (i == 3)
tirar 3;
cout<< “ \n Try ” ;

Catch (int e)
cout<< “ \n Exception no : ” << e ;

cout<< “ \n Testing The Last Line ” ;

Producción

gramo. Podemos escribir una declaración de lanzamiento dentro de un bloque de try sin dar ningún valor de lanzamiento.

Programación Ejemplo 4

# incluir
usando el espacio de nombres STD;
int main ()

cout<< “ Exception Handling Program :” ;
int i = 3;
intentar
if (i == 3)
tirar ;
cout<< “ \n Try ” ;

Catch (int)
cout<< “ \n Exception no : ” ;

cout<< “ \n Testing The Last Line ” ;

Producción

Explicación

Aquí escribimos una palabra clave de lanzamiento sin dar ningún valor, entonces el programa se terminará porque el manejo de excepción adecuado no se produce aquí. Como resultado, Catch Block no se ejecutará. En el tiempo de compilación no habrá error. Pero en tiempo de ejecución, el programa finalizará con un mensaje "terminado llamado sin una excepción activa".

Conclusión

Discutir en detalle sobre el manejo de excepciones, aprendemos aquí que si se produce una situación anormal en nuestro programa, el programa tendrá que estar listo para administrar esta situación anormal.