Cómo lanzar una excepción de C ++

Cómo lanzar una excepción de C ++
Lanzar una excepción de C ++ es una técnica importante que ayuda a mejorar la estructura general y la estabilidad del código. Las excepciones de C ++ son objetos simples utilizados para indicar que una condición de error ocurrió más allá del alcance de lo que se puede manejar mediante ejecución normal.

Este artículo proporcionará un detalle sobre cómo Lanzar una excepción de C ++, con un enfoque en la biblioteca estándar Biblioteca y el uso de BASIC trata de atraparlo bloques.

Cómo lanzar una excepción de C ++

Antes de que uno pueda comenzar a aprender a Lanzar una excepción de C ++, Es importante entender qué es una excepción. Un objeto utilizado para indicar un estado incorrecto es la excepción. Los usuarios de C ++ lo usan cuando ocurre algo inesperado o más allá de las capacidades del programa. Hay algunas formas diferentes de definir cuándo y cómo se debe lanzar una excepción. En general, puede usar cuando se realiza una acción que puede considerarse una situación anormal. Una cosa para recordar es que cuando un Se lanza la excepción, Nunca debe ser utilizado para indicar una acción intencional por parte del usuario.

Puede transferir el control entre partes de un programa utilizando excepciones. Intentar, Atrapar, y Tirar son las tres palabras clave base para Manejo de excepciones de C ++. Cuando surge un problema, un programa tirar una excepción utilizando el tirar palabra clave. Un software utiliza un controlador de excepción para obtener una excepción en la ubicación donde se debe manejar el problema. El término atrapar denota capturar una excepción. A intentar El bloque especifica una sección de código que activará ciertas excepciones. Luego se agregan un bloque o bloques de captura después de él.

Al heredar y modificar la funcionalidad de la clase de excepción, puede crear sus propias excepciones. El ejemplo que sigue demuestra cómo construir su propia excepción utilizando el std :: excepción clase de manera estándar.

#incluir
#incluir
usando el espacio de nombres STD;
struct myException: excepción pública
const char * what () const throw ()
devolver "una excepción C ++";

;
int main ()
intentar
tirar myException ();
catch (myException & e)
std :: cout << "My exception caught" << std::endl;
std :: cout << e.what() << std::endl;
catch (std :: excepción & e)

En el ejemplo anterior, qué() es un método público suministrado por la clase de excepción en este caso, y todas las clases de excepción de los niños lo han anulado. Esto proporciona la causa raíz de la excepción.

Producción

Un excepción debería ser lanzado Dentro de un constructor C ++ cuando la construcción de objetos falla, ya que no hay medios para recuperar. Los constructores deben además Tirar excepciones de C ++ para indicar cualquier parámetros de entrada que estén más allá del rango o con valores que no están permitidos. Los códigos de retorno no se pueden usar en constructores de C ++ porque carecen de un tipo de retorno. Por lo tanto, se recomienda que Los constructores arrojan excepciones para indicar falla.

A Lanzar una excepción de C ++ y finalice el código del constructor, use el tirar declaración.

#incluir
#incluir
usando el espacio de nombres STD;
int addPositiveInT (int x, int y)

if (x<0 || y<0)
arrojar std :: invalid_argument ("los argumentos deben ser positivos");
return (x + y);

int main ()

intentar
Cout << AddPositiveInt(-1, 2);
Catch (std :: invalid_argument & e)
Cerr << e.what() << endl;
return -1;
regresar 0;

En este ejemplo de excepción de lanzamiento de C ++, el AddPositiveInT () El método se utiliza desde el bloque de prueba de la función main (). Una excepción de argumento no válida es lanzada por el AddPositiveInT () función si alguno de los dos parámetros esperados, enteros X y Y, son negativos. La biblioteca estándar El archivo de encabezado contiene la definición del std :: inválido clase de argumento. Esta clase especifica los tipos de objetos que pueden ser lanzado como excepciones y registros de problemas de C ++ traídos por valores de parámetros no válidos. El principal() El bloque de captura de la función captura y trata con la excepción de argumentos no válidos.

Producción

Cuándo lanzar una excepción de C ++

Sabiendo cuando tirar una excepción es el primer paso, pero ¿cómo lo implementa?? La biblioteca estándar incluye una gama de clases bajo el biblioteca, que a menudo se usa para tirar excepciones. Contienen información importante para informar al usuario sobre cualquier tipo de error que ocurra, como el mensaje de error y el tipo de error. Una vez que los usuarios identifican la clase apropiada, pueden usar el "tirarPalabra clave para lanzar la excepción.

Conclusión

Lanzar una excepción de C ++ es un proceso simple que maneja cualquier tipo de error que se produjo en el programa. Es importante usar el biblioteca al lanzar excepciones y usar el "trata de atraparlo"Estructura de bloque para encontrarlos y manejarlos adecuadamente. Puede estar seguro de que su código puede manejar los errores cortésmente si hace esto.