std::bad_array_new_length
Min standard notice:
Header: <new>
std::bad_array_new_length is the type of the object thrown as exceptions by the new-expressions to report invalid array lengths if
# Declarations
class bad_array_new_length;
(since C++11)
# Parameters
other: another exception object to copy
# Return value
*this
# Notes
Implementations are allowed but not required to override what().
# Example
#include <climits>
#include <iostream>
#include <new>
int main()
{
try
{
int negative = -1;
new int[negative];
}
catch (const std::bad_array_new_length& e)
{
std::cout << "1) " << e.what() << ": negative size\n";
}
try
{
int small = 1;
new int[small]{1,2,3};
}
catch (const std::bad_array_new_length& e)
{
std::cout << "2) " << e.what() << ": too many initializers\n";
}
try
{
long large = LONG_MAX;
new int[large][1000];
}
catch (const std::bad_array_new_length& e)
{
std::cout << "3) " << e.what() << ": too large\n";
}
std::cout << "End\n";
}