Winforms नियंत्रण के लिए वैश्विक अपवाद हैंडलिंग

एएसपी.नेट 1.1 परियोजनाओं पर काम करते समय मैंने हमेशा सभी त्रुटियों को पकड़ने के लिए ग्लोबल.एक्सएक्स का इस्तेमाल किया। मैं एक विंडोज़ फॉर्म उपयोगकर्ता नियंत्रण में सभी अपवादों को पकड़ने के लिए एक समान तरीके की तलाश में हूं, जो एक होस्टेड आईई नियंत्रण होने के समाप्त होता है। ऐसा कुछ करने के बारे में जाने का उचित तरीका क्या है?

0
जोड़ा संपादित
विचारों: 4
कुछ नुकसान के लिए मेरा प्रश्न पर भी एक नज़र डालें (एक लिंक कोडिंग डरावनी ब्लॉग प्रविष्टियों के जोड़े)।
जोड़ा लेखक Ray, स्रोत

5 उत्तर

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

अधिकांश अपवाद ThreadException हैंडलर के माध्यम से आते हैं, लेकिन ऐपडोमेन ने मेरे अनुभव में कुछ भी पकड़े हैं

0
जोड़ा
एमएसडीएन से नमूना कोड दिखाता है कि दोनों प्रकार के अनचाहे अपवादों को कैसे पकड़ें: msdn
जोड़ा लेखक Jan Hettich, स्रोत

यदि आप VB.NET का उपयोग कर रहे हैं, तो आप बहुत सुविधाजनक ApplicationEvents.vb में टैप कर सकते हैं। यह फ़ाइल एक VB.NET WinForms प्रोजेक्ट के साथ मुफ्त में आती है और इसमें unhandled अपवाद

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

यदि आप VB.NET का उपयोग नहीं कर रहे हैं, तो हाँ, यह Application.ThreadException

0
जोड़ा

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
जोड़ा

विश्व स्तर पर अपवादों को संभालने के लिए ...

विंडोज़ एप्लिकेशन

System.Windows.Forms.Aplication.ThreadException घटना

आम तौर पर मुख्य विधि में उपयोग किया जाता है। MSDN थ्रेड अपवाद

Asp.Net

System.Web.HttpAplication.Error घटना

सामान्य रूप से Global.asax फ़ाइल में प्रयुक्त होता है। MSDN Global.asax वैश्विक हैंडलर का संदर्भ लें

कंसोल एप्लिकेशन

System.AppDomain.UnhandledException घटना

Generally used in Main Method. Refer MSDN UnhandledException

0
जोड़ा

आपको Windows फॉर्म के लिए System.Windows.Forms.Aplication.ThreadException ईवेंट को संभालने की आवश्यकता है। इस आलेख ने वास्तव में मेरी सहायता की: http://bytes.com/forum/thread236199.html

0
जोड़ा