Domanda

Quando si lavora su ASP.NET 1.1 progetti che ho sempre utilizzato Globale.asax per la cattura di tutti gli errori.Sto cercando un modo simile a quello di catturare tutte le eccezioni in un controllo utente di Windows Form, che finisce per essere una ospitato IE controllo.Qual è il modo corretto di fare qualcosa di simile a questo?

È stato utile?

Soluzione

È necessario gestire il System.Windows.Forms.Application.ThreadException evento per Windows Forms.Questo articolo mi ha davvero aiutato: http://bytes.com/forum/thread236199.html.

Altri suggerimenti

Attualmente nel mio winforms app ho gestori per Application.ThreadException, come sopra, ma anche AppDomain.CurrentDomain.UnhandledException

La maggior parte delle eccezioni arrivano tramite la ThreadException il gestore, ma il dominio di applicazione ha anche preso pochi nella mia esperienza

Se si sta utilizzando VB.NET è possibile toccare in molto conveniente ApplicationEvents.vb.Questo file viene fornito gratuitamente con un VB.NET WinForms progetto e contiene un metodo per la gestione di le eccezioni non gestite.

Per arrivare a questo nifty file, è "Proprietà del Progetto >> Applicazione >> Eventi dell'Applicazione"

Se non si utilizza VB.NET quindi sì, è la manipolazione Applicazione.ThreadException.

Per Gestire Le Eccezioni In Tutto Il Mondo...

Applicazione Di Windows

Sistema.Windows.Le forme.Applicazione.ThreadException evento

Generalmente Utilizzato nel Metodo Main.Riferimento MSDN Thread Eccezione

Asp.Net

Sistema.Web.HttpApplication.Evento di errore

Normalmente Utilizzato in Globale.asax file.Riferimento MSDN Globale.asax Globale Gestori

Applicazione Console

Sistema.Dominio di applicazione.UnhandledException evento

Generalmente utilizzato nel Metodo Main.Riferimento MSDN UnhandledException

Codice da 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 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top