एक प्रोफाइलर का उपयोग करने का छोटा, क्या पहले अवसर अपवादों का पता लगाने के लिए चल रहे प्रोग्राम के अंदर कोई रास्ता है? आदर्श रूप में, मैं अधिक विस्तृत राज्य जानकारी रिकॉर्ड करना चाहता हूं जो कि अंतिम अपवाद पर कैच ब्लॉक ने लिया है।क्या पहले मौका अपवादों को लॉग या अवरुद्ध करने का कोई तरीका है
उत्तर
मुझे लगता है कि .NET में वह जानकारी प्राप्त करने का एकमात्र तरीका एक डीबगर का उपयोग कर रहा है।
अन्यथा, आपको स्टैकफ्रेम की स्थिति को सहेजने और अपवादों को लॉग करने का एक विशेष तरीका रखने के लिए स्वयं को एक समाधान विकसित करना होगा। आप मूल रूप से वही काम कर रहे हैं जो एक मेमोरी प्रोफाइलर करता है, बनाए गए उदाहरणों का ट्रैक रखें। यह एक बड़ा प्रदर्शन हिट होगा हालांकि जब तक आप लॉगिंग की जा रही जानकारी की मात्रा सीमित नहीं करते हैं।
सिस्टम में ट्रेस और आर्ट क्षमताओं का उपयोग करने के लिए एक बेहतर समाधान होगा। प्रोग्राम स्थिति का चयन करने के लिए डायग्नोस्टिक्स नामस्थान, या लॉगिंग सुविधा का उपयोग करने के लिए (लॉग 4नेट, एंटरप्राइज़ लाइब्रेरी, एनएलओजी, अपना खुद का सरल रोल करें) डंप करने के लिए थ्रेड/स्टैक/परिवर्तनीय जानकारी जैसे आप जाते हैं।
किसी भी मामले में, यह अतिरिक्त जानकारी जोड़ना एक बड़ा ओवरहेड है।
संपादित करें: मुझे इस परियोजना की मेरी फ़ीड में खबर मिली: NTrace। ऐसा लगता है कि आप जो कुछ करने की कोशिश कर रहे हैं उससे थोड़ा अधिक फिट होगा।
Adplus का उपयोग करें। यह प्रोसेस में एक डीबगर संलग्न करेगा, और पहली मौका उत्तेजना उठाए जाने पर एक छोटा मिनीडम्प उत्पन्न करेगा (डिफ़ॉल्ट रूप से)। एडप्लस जेनरेट लॉग फ़ाइल में अपवाद जानकारी भी होगी। बस सुनिश्चित करें कि आपके पास पूर्ण कैल्स्टैक जानकारी देखने के लिए पीडीबी का लाभदायक है।
मैं FirstChanceException googling किया गया था, और मैं इस से अधिक दो साल बाद जवाब देने नहीं विरोध कर सकते हैं ...
अब, .net 4.0 में, आप AppDomain की FirstChanceException event पकड़ कर सकते हैं। यह केवल एक घटना है, इसलिए आप त्रुटि को संभाल नहीं सकते हैं, लेकिन यह अपवादों पर जानकारी प्राप्त करने के लिए एक अच्छा, केंद्रीय तरीका प्रतीत होता है कि उन्हें संभाला गया है या नहीं। कैच ब्लॉक को इसे संभालने की अनुमति देने से पहले FirstChanceException ईवेंट फेंक दिया जाता है। मुझे इस पर बहुत सारी जानकारी नहीं मिली है, लेकिन माइक्रोसॉफ्ट दस्तावेज से अलग, बेहतर स्रोतों में से एक Mitch Sellers Blog है।
मेरी इच्छा है कि नेट 3.5 में ऐसा करने का कोई तरीका था। मेरे पास उत्पादन में 3.5 प्रक्रिया है और 3.5 में 'फर्स्टचेंस अपवाद' जैसी कुछ मुझे डिस्कनेक्ट समस्या को ट्रैक करने में मदद कर सकती है ... –
- 1. क्या CoGetClassObject और/या CoCreateInstance कॉल को हुक या अवरुद्ध करने का कोई तरीका है?
- 2. क्या अपाचे लॉग धीमा अनुरोध करने का कोई तरीका है?
- 3. एडीबी बग्रेपोर्ट: क्या लॉग रीसेट करने का कोई तरीका है?
- 4. पायथन अपवादों को मुद्रित करने का उचित तरीका क्या है?
- 5. क्या मेरी साइट पर डेटा लाने के लिए कर्ल को अवरुद्ध करने का कोई तरीका है?
- 6. क्या PHP का एफ़टीपी शुरू करने का कोई तरीका है?
- 7. क्या पाइथन में नेस्टेड या फिर से उठाए गए अपवादों तक पहुंचने का कोई तरीका है?
- 8. क्या ब्राउज़र बंद होने पर उपयोगकर्ता को लॉग आउट करने का कोई विश्वसनीय तरीका है?
- 9. क्या कॉल को कैश करने का कोई तरीका है?
- 10. क्या ऐसा करने का कोई तरीका है?
- 11. Win32 में, क्या सॉकेट गैर-अवरुद्ध होने पर परीक्षण करने का कोई तरीका है?
- 12. जावा * लॉग इन * हर * थ्रेड इंटरप्ट लॉग इन करने का कोई तरीका है?
- 13. क्या गिसिस ग्रैफर को काम करने का कोई तरीका है?
- 14. क्या यह सिस्टम कॉल को अवरुद्ध करने का एक अच्छा तरीका है?
- 15. क्या एक्सएमएल चेतावनियों को अक्षम करने का कोई तरीका है?
- 16. क्या फॉर्म प्रतिक्रिया को अनदेखा करने का कोई तरीका है?
- 17. क्या एचएटीओएम माइक्रोफॉर्मेट को सत्यापित करने का कोई तरीका है?
- 18. क्या पहले से सशर्त बनाने का कोई तरीका है?
- 19. क्या कोई लेबल अक्षम करने का कोई तरीका है?
- 20. क्या सबडोमेन से जेसन लोड करने का कोई तरीका है?
- 21. क्या यह जांचने का कोई तरीका है कि अलार्म पहले से सेट है या नहीं?
- 22. क्या पहले आइटम को मैप करने का कोई बेहतर तरीका है?
- 23. आपके मुख्य धागे को अवरुद्ध करने वाले कोड को खोजने का सबसे अच्छा तरीका क्या है?
- 24. क्या ओपनिड को लागू करने का कोई आसान तरीका है?
- 25. क्या gif फ़ाइलों को सिंक करने का कोई तरीका है?
- 26. क्या लिनक्स को डिकंपाइल करने का कोई तरीका है। तो?
- 27. क्या configManager.AppSettings को ओवरराइड करने का कोई तरीका है?
- 28. क्या SQLLataReader को मल्टीथ्रेड करने का कोई तरीका है?
- 29. क्या रननेबल को पैरामीटर पास करने का कोई तरीका है?
- 30. क्या TabControl.Items.CurrentChanging को रद्द करने का कोई तरीका है?
आप किस जानकारी को खो देते हैं? – pipTheGeek
सही करने के लिए खुश: यदि आप प्रत्येक विधि में सभी अपवादों को संभाल नहीं पाते हैं और सुनिश्चित करें कि सभी चर को कोशिश-पकड़ ब्लॉक के बाहर परिभाषित किया गया है तो बिंदु पर अंतिम अपवाद उठाया गया है, तो आपके पास सभी चरों तक पहुंच नहीं होगी मूल अपवाद के निष्पादन संदर्भ में उपलब्ध थे। –