net - retornar c#
¿Es posible intentar/atrapar todo el programa de C#? (2)
Básicamente, no puede capturar todas las excepciones cuando usa el proceso de hospedaje CLR predeterminado. Período. Esto se debe a que el evento AppDomain.UnhandledException
es solo una notificación, no puede manejar la excepción (lo que significa que no puede evitar que la aplicación finalice después de procesar la notificación).
Sin embargo, puede capturar y manejar todas las excepciones en el subproceso de la interfaz de usuario de una aplicación WinForms utilizando su controlador Application.ThreadException
(y controlar el comportamiento a través de UnhandledExceptionMode
). Otros hilos que lanzan una excepción no serán capturados por este controlador.
En general, no es una buena idea tratar de manejar todas las excepciones. Sin embargo, puede usar AppDomain.UnhandledException
para registrar el error y / o realizar tareas de limpieza importantes (por ejemplo, cerrar una base de datos basada en archivos o lo que sea).
El programa AC # es invocado por:
Application.Run (new formClass ());
Me gustaría probar y atrapar todo el asunto para atrapar cualquier excepción no detectada. Cuando lo coloco alrededor de este método de ejecución, las excepciones no se detectan; el control solo regresa aquí cuando el programa termina después de una excepción no detectada.
¿Dónde puedo poner try / catch para cubrir todo el programa? ¡Gracias!
Para detectar las excepciones no controladas de Windows Form, conecte los eventos AppDomain.UnhandledException
y Application.ThreadException
.
De interés: Errores inesperados en aplicaciones administradas.