Clase std::bad_array_new_length en C++ con ejemplos

C++ estándar contiene varias clases de excepción incorporadas, std::bad_array_new_length es una de ellas. Es una excepción en la longitud de array incorrecta y se lanza si el tamaño de la array es menor que cero y si el tamaño de la array es mayor que el límite. A continuación se muestra la sintaxis para el mismo:

Archivo de cabecera:

<new>

Sintaxis:

class bad_array_new_length;

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

Nota: Para hacer uso de std::bad_array_new , uno debe configurar los bloques try and catch apropiados.

A continuación se muestran los programas para comprender mejor la implementación de std::bad_array_new :

Programa 1:

// C++ code for std::bad_array_new_length
#include <bits/stdc++.h>
  
using namespace std;
  
// main method
int main()
{
    int a = -1;
    int b = 1;
    int c = INT_MAX;
  
    // try block
    try {
        new int[a];
        new int[b]{
            1,
            2,
            3,
            4
        };
        new int[50000000];
    }
  
    // catch block to handle the errors
    catch (const bad_array_new_length& gfg) {
        cout << gfg.what() << endl;
    }
  
    return 0;
}
Producción:

std::bad_array_new_length

Programa 2:

// C++ code for std::bad_array_new_length
#include <bits/stdc++.h>
  
using namespace std;
  
// main method
int main()
{
    int a = -1;
    int b = 1;
    int c = INT_MAX;
  
    // try block
    try {
        new int[a];
        new int[b]{
            11,
            25,
            56,
            27
        };
        new int[1000000];
    }
  
    // catch block to handle the errors
    catch (const bad_array_new_length& gfg) {
        cout << gfg.what() << endl;
    }
    return 0;
}
Producción:

std::bad_array_new_length

Referencia: http://www.cplusplus.com/reference/new/bad_array_new_length/

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 *