मैं .net (C#) में एक अनचाहे अपवाद हैंडलर जोड़ने की कोशिश कर रहा हूं जो संभवतः 'उपयोगकर्ता' के लिए उपयोगी हो। अंतिम उपयोगकर्ता अधिकतर प्रोग्रामर होते हैं, इसलिए उन्हें केवल एक संकेत की आवश्यकता होती है कि वे किस वस्तु को गलत तरीके से जोड़ रहे हैं।एक .net अपवाद में तर्क मानों के साथ एक स्टैकट्रैक कैसे प्राप्त करें
मैं एक एप्लिकेशन को क्रैश होने पर विंडोज एक्सपी त्रुटि रिपोर्ट के समान विंडोज़ विकसित कर रहा हूं लेकिन यह अपवाद के बारे में जितना संभव हो उतना इमेडिएट जानकारी देता है।
जबकि स्टैक ट्रेस मुझे समस्या के स्रोत को इंगित करने के लिए सक्षम बनाता है (चूंकि मेरे पास स्रोत कोड है), उपयोगकर्ताओं के पास यह नहीं है और इसलिए वे बिना किसी जानकारी के खो गए हैं। कहने की जरूरत नहीं है कि मुझे उपकरण का समर्थन करने में बहुत समय व्यतीत करना है।
कुछ सिस्टम अपवाद हैं जैसे कि KeyNotFoundException शब्दकोश संग्रह द्वारा फेंक दिया गया है जो वास्तव में मुझे बग करता है क्योंकि वे संदेश में शामिल नहीं होने वाली कुंजी में शामिल नहीं होते हैं। मैं अपने कोड को पकड़ने के कई प्रयासों के साथ भर सकता हूं लेकिन इसके बजाय आक्रामक और बनाए रखने के लिए बहुत अधिक कोड है, स्थानीय स्तर पर होने वाले तारों के एक टन का उल्लेख न करें।
आखिरकार सवाल: कॉल स्टैक ट्रेस में प्रत्येक फ़ंक्शन के तर्कों के मूल्यों को चलाने के लिए कोई तरीका है (रनटाइम पर)? वह अकेले समर्थन कॉल का 9 0% हल कर सकता है।
यह पहले ही अच्छी तरह से उत्तर दिया गया है, लेकिन भविष्य के संदर्भ के लिए मैं रेमंड चेन के उत्कृष्ट ब्लॉग आलेख में एक पॉइंटर जोड़ना चाहूंगा [जब ऑब्जेक्ट कचरा संग्रहण के लिए उपलब्ध हो जाता है?] (Http: //blogs.msdn। com/b/oldnewthing/archive/2010/08/10/10048149.aspx) अन्य चीजों के अलावा, यह इंगित करता है कि स्टैक ट्रेस से विश्वसनीय मूल्यों को एकत्रित करना असंभव है, क्योंकि तर्कों को एकत्र किया जा सकता है जबकि संदर्भित विधियां अभी भी निष्पादित हो रही हैं । –
मैंने यह https://stackoverflow.com/questions/2696691/can-i-get-the-method-local-variables-through-a-stack-trace-in-c देखा है लेकिन मुझे नहीं पता कि कैसे 'अपवाद' ऑब्जेक्ट से 'स्टैकट्रेस' प्राप्त करने के लिए। उस पर एक 'स्ट्रिंग' है। –