excepción::bad_exception en C++ con ejemplos

El C++ estándar contiene varias clases de excepción integradas, excepción::bad_exception es una de ellas. Esta es una excepción lanzada por un controlador inesperado. A continuación se muestra la sintaxis para el mismo:

Archivo de cabecera:

include<exception>

Sintaxis:

class bad_exception;

Retorno: La excepción::bad_exception devuelve un carácter terminado en nulo que se utiliza para identificar la excepción.

Nota: Para hacer uso de excepción::bad_exception , uno debe configurar los bloques try and catch apropiados.

A continuación se muestran los ejemplos para comprender mejor la implementación de excepción::bad_exception :

Programa 1:

// C++ code for std::bad_exception
#include <bits/stdc++.h>
  
using namespace std;
  
void func()
{
    throw;
}
  
void geeksforgeeks() throw(bad_exception)
{
    throw runtime_error("test");
}
  
// main method
int main()
{
    set_unexpected(func);
  
    // try block
    try {
        geeksforgeeks();
    }
  
    // catch block to handle the errors
    catch (const bad_exception& gfg) {
        cout << "Caught exception "
             << gfg.what() << endl;
    }
    return 0;
}
Producción:

Caught exception std::bad_exception

Programa 2:

// C++ code for std::bad_exception
#include <bits/stdc++.h>
  
using namespace std;
  
void gfg()
{
    throw;
}
  
void A_Computer_Science_Portal_For_Geeks()
     throw(bad_exception)
{
    throw runtime_error("test");
}
  
// main method
int main()
{
    set_unexpected(gfg);
  
    // try block
    try {
        A_Computer_Science_Portal_For_Geeks();
    }
  
    // catch block to handle the errors
    catch (const bad_exception& a) {
        cout << "Caught exception "
             << a.what() << endl;
    }
    return 0;
}
Producción:

Caught exception std::bad_exception

Referencia: http://www.cplusplus.com/reference/exception/bad_exception/

Publicación traducida automáticamente

Artículo escrito por bansal_rtk_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *