Witam. Chcę użyć wyjątku typu bad_alloc w trakcie wykonywania alokacji danych w mojej tablicy. Całość zaprogramowałem jak poniżej:
void perceptron::allocate()
{
try {
O = new float*[getNumberOfLayers()];
for (int i = 0; i < getNumberOfLayers(); i++)
{
O[i] = new float[getN(i)];
for (int j = 0; j < getN(i); j++)
{
setO(i, j, 0);
}
}
}
catch (bad_alloc& ba){
cerr << "Exception bad_alloc catch: " << ba.what() << endl;
}
}
Więc w momencie tworzenia wyjątku powinna pojawić się wydruk typu:
Exception bad_alloc catch: bad allocation
Zamiast tego pojawia się komunikat o nieobsługiwanym wyjątku (ale dlaczego?), gdzie standardowo do wyboru jest opcja kontynuacji, albo przerwania, do tego stos błędów. Ma ktoś pomysł, dlaczego wyjątek nie jest obsługiwany?