MEJOR SITIO PARA DESARROLLADORES WEB

C++ Tutorial

C++ HOGAR C++ Introducción C++ Empezar C++ Sintaxis C++ Producción C++ Comentarios C++ Variables C++ Entrada de usuario C++ Tipos de datos C++ Operadores C++ Cadenas C++ Matemáticas C++ Booleanos C++ Condiciones C++ Switch C++ While Bucle C++ For Bucle C++ Break/Continue C++ Matrices C++ Estructuras C++ Enumeraciones C++ Referencias C++ Consejos

C++ Funciones

C++ Funciones C++ Parámetros de función C++ Sobrecarga de funciones C++ Alcance C++ Recursión

C++ Clases

C++ POO C++ Clases/Objetos C++ Métodos de clase C++ Constructores C++ Especificadores de acceso C++ Encapsulación C++ Herencia C++ Polimorfismo C++ Archivos C++ Excepciones C++ Fecha

C++ Cómo

Suma dos números Números al azar

C++ Referencia

C++ Referencia C++ Palabras clave C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime>

C++ Ejemplos

C++ Ejemplos C++ Compilador C++ Ejercicios C++ Prueba C++ Certificado

Lenguaje C++. W3Schools lecciones en español

Ua En De Fr

C++ Excepciones


C++ Excepciones

Al ejecutar código C++ pueden ocurrir diferentes errores: errores de codificación cometidos por el programador, errores por entradas incorrectas u otras cosas imprevisibles.

Cuando ocurre un error, C++ normalmente se detendrá y generará un mensaje de error. El término técnico para esto es: C++ generará una excepción (arrojará un error).


C++ try y catch

El manejo de excepciones en C++ consta de tres palabras clave: try, throw y catch:

La instrucción try le permite definir un bloque de código que se probará en busca de errores mientras se ejecuta.

La palabra clave throw genera una excepción cuando se detecta un problema, lo que nos permite crear un error personalizado.

La instrucción catch le permite definir un bloque de código que se ejecutará si se produce un error en el bloque try.

Las palabras clave try y catch vienen en pares:

Ejemplo

try {
  // bloque de código para try
  throw exception; // Lanzar una excepción cuando surge un problema
}
catch () {
  // Bloque de código para manejar errores
}

Considere el siguiente ejemplo:

Ejemplo

try {
  int age = 15;
  if (age >= 18) {
    cout << "Acceso concedido: tienes edad suficiente.";
  } else {
    throw (age);
  }
}
catch (int myNum) {
  cout << "Acceso denegado - Debes tener al menos 18 años.\n";
  cout << "La edad es: " << myNum;
}
Inténtalo tú mismo »

Ejemplo explicado

Usamos el bloque try para probar algún código: si la variable age es menor que 18, throw una excepción y la manejaremos en nuestro catch bloquear.

En el bloque catch, detectamos el error y hacemos algo al respecto. La declaración catch toma un parámetro: en nuestro ejemplo usamos una variable int (myNum) (porque estamos lanzando una excepción de int escriba en el bloque try (age)), para generar el valor de age.

Si no se produce ningún error (por ejemplo, si age es 20 en lugar de 15, lo que significa que será mayor que 18), se omite el bloque catch:

Ejemplo

int age = 20;
Inténtalo tú mismo »

También puede utilizar la palabra clave throw para generar un número de referencia, como un número/código de error personalizado para fines de organización (505 en nuestro ejemplo):

Ejemplo

try {
  int age = 15;
  if (age >= 18) {
    cout << "Acceso concedido: tienes edad suficiente.";
  } else {
    throw 505;
  }
}
catch (int myNum) {
  cout << "Acceso denegado - Debes tener al menos 18 años.\n";
  cout << "Número de error: " << myNum;
}
Inténtalo tú mismo »

Manejar cualquier tipo de excepciones (...)

Si no conoce el throw tipo utilizado en el try bloque, puede utilizar la sintaxis de "tres puntos" (...) dentro del bloque catch, que manejará cualquier tipo de excepción:

Ejemplo

try {
  int age = 15;
  if (age >= 18) {
    cout << "Acceso concedido: tienes edad suficiente.";
  } else {
    throw 505;
  }
}
catch (...) {
  cout << "Acceso denegado - Debes tener al menos 18 años.\n";
}
Inténtalo tú mismo »


Comentarios