Vă mulțumim pentru susținere

Manipularea excepțională globală pentru controlul câștigurilor

Când lucram la proiectele ASP.NET 1.1, am folosit întotdeauna Global.asax pentru a prinde toate erorile. Caut o modalitate similară de a captura toate excepțiile într-un control al Windows Forms de utilizator, care ajunge să fie un control IE găzduit. Care este modalitatea corectă de a face ceva de genul asta?

0
adăugat editat
De asemenea, aruncați o privire la întrebarea mea pentru unele dintre capcanele (link-uri către câteva intrări de bloguri de groază de codificare).
adăugat autor Ray

5 răspunsuri

Currently in my winforms app I have handlers for Application.ThreadException, as above, but also AppDomain.CurrentDomain.UnhandledException

Cele mai multe excepții ajung prin managerul ThreadException , dar AppDomain a prins de asemenea câteva din experiența mea

0
adăugat
Cod de probă din MSDN care arată cum să capturați ambele tipuri de excepții nefolosite: msdn
adăugat autor Jan Hettich

Dacă utilizați VB.NET, puteți să accesați aplicația foarte convenabilă ApplicationEvents.vb. Acest fișier vine gratuit cu un proiect VB.NET WinForms și conține o metodă pentru manipularea excepții nefolosite .

To get to this nifty file, it's "Project Properties >> Application >> Application Events"

Dacă nu utilizați VB.NET, atunci da, se ocupă de Application.ThreadException .

0
adăugat

Code from 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 
0
adăugat

Pentru a trata excepțiile la nivel global ...

aplicație Windows

System.Windows.Forms.Application.ThreadException eveniment

Utilizat în general în metoda principală. Consultați Excepția de subiecte MSDN

Asp.Net

System.Web.HttpApplication.Error event

Utilizat în mod normal în fișierul Global.asax. Consultați MSDN Global.asax Global Handlers

Aplicația consolă

System.AppDomain.UnhandledException

Generally used in Main Method. Refer MSDN UnhandledException

0
adăugat

Trebuie să gestionați evenimentul System.Windows.Forms.Application.ThreadException pentru Windows Forms. Acest articol ma ajutat într-adevăr: http://bytes.com/forum/thread236199.html .

0
adăugat