Al trabajar en proyectos ASP.NET 1.1 siempre utilicé Global.asax para detectar todos los errores. Estoy buscando una forma similar de detectar todas las excepciones en un control de usuario de Windows Forms, que termina siendo un control alojado de IE. ¿Cuál es la forma correcta de hacer algo como esto?Gestión global de excepciones para el control de formas
Respuesta
Debe controlar el evento System.Windows.Forms.Application.ThreadException
para Windows Forms. Este artículo realmente me ayudó: http://bytes.com/forum/thread236199.html.
Si está utilizando VB.NET, puede acceder al muy conveniente ApplicationEvents.vb. Este archivo viene de forma gratuita con un proyecto VB.NET WinForms y contiene un método para manejar unhandled exceptions.
para llegar a este archivo ingenioso, es "Propiedades del proyecto de aplicación >> >> eventos de aplicación"
Si no se está usando VB.NET, entonces sí, es el manejo de Application.ThreadException.
Actualmente en mi aplicación WinForms tengo controladores para Application.ThreadException
, como anteriormente, sino también AppDomain.CurrentDomain.UnhandledException
mayoría de las excepciones llegan a través del manejador ThreadException
, pero el dominio de aplicación también ha cogido unos cuantos en mi experiencia
Código de ejemplo de MSDN que muestra cómo detectar ambos tipos de excepciones no controladas: [msdn] (http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx) –
Código de MSDN: http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2
Sub Main()
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler currentDomain.UnhandledException, AddressOf MyHandler
Try
Throw New Exception("1")
Catch e As Exception
Console.WriteLine("Catch clause caught : " + e.Message)
Console.WriteLine()
End Try
Throw New Exception("2")
End Sub
Sub MyHandler(sender As Object, args As UnhandledExceptionEventArgs)
Dim e As Exception = DirectCast(args.ExceptionObject, Exception)
Console.WriteLine("MyHandler caught : " + e.Message)
Console.WriteLine("Runtime terminating: {0}", args.IsTerminating)
End Sub
para manejar excepciones a nivel mundial ...
de aplicaciones de Windows
caso System.Windows.Forms.Application.ThreadException
Generalmente se usa en el método principal. Consulte MSDN Thread Exception
Asp.Net
caso System.Web.HttpApplication.Error
que normalmente se utiliza en el archivo Global.asax. Consulte MSDN Global.asax Global Handlers
aplicación de consola
evento System.AppDomain.UnhandledException
Generalmente se usa en el método principal. Consulte MSDN UnhandledException
- 1. Gestión global de excepciones en C++
- 2. Refactor la gestión de excepciones
- 3. IOS - manejador de excepciones global
- 4. Java: Controlador global de excepciones
- 5. Gestión de excepciones ASP.NET MVC Web API
- 6. Controlador global de excepciones de WPF
- 7. Manejo global de excepciones en Jersey
- 8. formas de control de cortocircuito Ada
- 9. Servicios de WCF REST: gestión de excepciones genéricas
- 10. ¿Cuáles son algunas formas elegantes de abstraer el manejo repetitivo de excepciones en python?
- 11. jQuery son posibles excepciones a global $ .ajaxSetup()?
- 12. ¿Gestión de memoria global en C++ en stack o heap?
- 13. Excepciones de registro global de los servicios de ASP.NET [ScriptService]
- 14. Habilitar el control de excepciones de seguridad en C++ Builder
- 15. Controlador global de excepciones de JavaScript (en Chrome)
- 16. .NET Controlador global de excepciones en la aplicación de consola
- 17. cómo simplificar/reutilizar el código de control de excepciones
- 18. Reflection.Emit.ILGenerator control de excepciones "Deja" instrucción
- 19. Gestión de eventos de Javascript y control de flujo
- 20. Gestión de control de lanzamiento de código abierto
- 21. Excepciones de rescate y registro global en Sinatra
- 22. Controlador global de excepciones en CLR Procedimiento almacenado
- 23. ¿Cómo puedo evitar el uso de excepciones para el control de flujo?
- 24. la gestión de excepciones intento de captura en el interior de captura
- 25. ¿Complemento de gestión de requisitos para Trac?
- 26. Uso de la gestión de excepciones globales con "setUncaughtExceptionHandler" y "Toast"
- 27. Controlador global de excepciones Catch-All en App Engine para Python
- 28. ¿Cómo creo un controlador global de excepciones para un WCF Services?
- 29. registro genérico de parámetros de la función de gestión de excepciones
- 30. ¿Hay alguna herramienta para la gestión de GAC?
También eche un vistazo a [mi pregunta] (http://stackoverflow.com/questions/944/unhandled-exception-handler-in-net-11) para algunas de las trampas (enlaces a un par de codificar las entradas de blog de terror). – Ray