cpp: поймать исключение с помощью многоточия и посмотреть информацию

Я знаю, что вы можете поймать «все исключения» и распечатать исключение с помощью

try
{
//some code...
}catch(const std::exception& e) {
cout << e.what();
}

но это только для исключений, полученных из std :: exception.
Мне было интересно, если есть способ получить некоторую информацию из улова многоточия

try
{
//some code...
}catch(...) {
// ??
}

Если механизм такой же, как и многоточие для функций, я мог бы сделать что-то вроде приведения аргумента va_list и пытается позвонить what() метод.

Я еще не пробовал, но если кто-то знает, как я был бы рад узнать, как.

3

Решение

Извините, вы не можете этого сделать. Вы можете получить доступ только к объекту исключения в catch блок для определенного типа исключения.

3

Другие решения

Начиная с C ++ 11 и далее, вы можете использовать std::current_exception &с:

std::exception_ptr p;
try {

} catch(...) {
p = std::current_exception();
}

Вы можете тогда «осмотреть» p принимая слепки &с.

В более ранних стандартах не было портативного способа проверки исключения на catch(...) сайт.

5

По вопросам рекламы [email protected]