¿Hay alguna manera de detectar excepciones que de lo contrario no se han controlado (incluidas las lanzadas fuera del bloque catch)?¿Está capturando todas las excepciones de C++ no controladas?
No estoy realmente preocupado por todas las cosas normales de limpieza hechas con excepciones, solo que puedo atraparlo, escribirlo para registrar/notificar al usuario y salir del programa, ya que las excepciones en estos casos son en general fatales, errores irrecuperables.
algo como:
global_catch()
{
MessageBox(NULL,L"Fatal Error", L"A fatal error has occured. Sorry for any inconvience", MB_ICONERROR);
exit(-1);
}
global_catch(Exception *except)
{
MessageBox(NULL,L"Fatal Error", except->ToString(), MB_ICONERROR);
exit(-1);
}
La cosa es que realmente no quiero poner toda mi aplicación en un bloque grande "super-tratar" ... ya que el rendimiento es un poco crítico ... Sé theres algunos camino a algún lado porque, por ejemplo, Visual Studio puede detectar/atrapar/lo que sea, exceptiosn, y ofrece romper y depurar. –
El bloque Super try funciona. Usted paga el costo de configurarlo una vez en general. Una vez no es un problema de rendimiento. – EvilTeach
solo una vez? Estoy seguro de que una vez dentro de un bloque de prueba, mantuvo algún tipo de "rastro" para limpiar después de un lanzamiento, haciendo que el costo se basara en el contenido del bloque. –