Кто-то в другом вопросе предложил использовать catch(...)
для захвата всех других необработанных неожиданных/непредвиденных исключений, окружая весь main()
блоком try{}catch(...){}
.
Звучит как интересная идея, которая может сэкономить много времени на отладке программы и оставить хотя бы намек на то, что произошло.
Суть вопроса в том, что какая информация может быть восстановлена таким образом (отличные от всех отладочных глобальных переменных, которые я оставляю позади), и как восстановить его (как получить доступ и узнайте, какой вызов был вызван)
Кроме того, какие предостережения связаны с ним. В частности:
- будет ли он играть хорошо с потоками, которые прорастают позже?
- не будет ли он нарушать обработку segfaults (захвачен где-то в качестве сигнала).
- не повлияет ли он на другие блоки try..., которые неизбежно вложены внутри, которые должны обрабатывать ожидаемые исключения?