2009-05-21 22 views
5

में कोशिश/पकड़ को अनदेखा करने के लिए दृश्य स्टूडियो प्राप्त करने का कोई बेहतर तरीका है, मैं डिज़ाइनर को डिबगिंग करते समय त्रुटि पकड़ने के लिए चाहता हूं और मैं चाहता हूं कि उपयोगकर्ता उनके अनुकूल संदेश को देखने के लिए यदि कोई त्रुटि हो। मैं जानता हूँ कि मैं निम्नलिखित के साथ यह पूरा कर सकते हैं:क्या डीबग मोड

#If Debug=False Then 

Try 

#End If 

'some code here 

#If Debug=False Then 

Catch ex as exception 

    Messagebox.Show("Errors suck") 

End Try 

#End If 

मैं सभी #statements लिखने के लिए और उन्हें अपने होने कोड को अव्यवस्थित करने के लिए नहीं करना चाहती। ऐसा लगता है कि यह एक आम आवश्यकता होनी चाहिए और एक बेहतर तरीका होना चाहिए। क्या कोई बेहतर तरीका जानता है?

+0

क्या आपने कभी इसे सफलतापूर्वक हल किया है? क्या आपको अभी भी इसके साथ मदद चाहिए? – jcolebrand

उत्तर

0

अपने प्रयास के पकड़ अनुभाग में .. पकड़ो आपको अपवाद संदेश, स्टैकट्रैक, और कुछ भी जो आप लॉग फ़ाइल चाहते हैं, लिखना चाहिए - इसके अतिरिक्त आप उस डेटा को विंडोज इवेंट लॉग में भी लिख सकते हैं।

सबसे खराब, आप अपने प्रयास..चैच ब्लॉक के कैच सेक्शन में ब्रेक-पॉइंट डाल सकते हैं, क्योंकि आपको सामान्य रूप से उन्हें हिट नहीं करना चाहिए, इसे सेटअप के बाद एक बड़ा सौदा नहीं होना चाहिए।

15

वीएस.NET में आप यह कह सकते हैं कि अपवाद को फेंकने पर डिबगर को तोड़ना है या नहीं (केवल तभी जब यह अनचाहे हो)।

डीबग पर देखें | अपवाद ... मेनू आइटम (मेरे कीबोर्ड शॉर्टकट पर सीटीएल-Alt-E)। उस उत्सव को चुनें जिसमें आप रुचि रखते हैं, फिर उस अपवाद के लिए "फेंक दिया" बॉक्स पर निशान लगाएं।

आप कई स्तरों पर है कि बॉक्स (सभी CLR अपवाद हैं, किसी दिए गए नाम स्थान में सभी CLR अपवाद हैं, या बहुत ही विशेष अपवाद)

3

कोई अच्छा तरीका यह एक कोशिश के अलावा अन्य को पकड़ने की अनदेखी करने के लिए नहीं है टिक कर सकते हैं क्या तुमने कर दिया। लेकिन आप कोड को थोड़ा क्लीनर बना सकते हैं और अनिवार्य रूप से वही प्रभाव प्राप्त कर सकते हैं। आप अनिवार्य रूप से पकड़ने वाले ब्लॉक में कार्रवाई को रोकने से रोकने की कोशिश कर रहे हैं। ऐसा करने का एक बेहतर तरीका एक सशर्त संकलित विधि है।

Try 
... 
Catch ex As Exception 
    DebugLog(ex) 
    Throw 
End Try 

<Condition("DEBUG)> _ 
Public Sub DebugLog(ByVal ex As Exception) 
    Messagebox.Show("errors suck") 
End Sub 
0

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

और फिर यह मेरे पर आती है कि ऐसा लगता है कि प्रश्नकर्ता अपने खाते बंद कर दिया है की तरह ...

0

यहाँ है कैसे मैं यह कर:

सक्षम किया गया:

Try ' : Catch: End Try 
    doSomething 
    andSomeMore 
    etcEtc 
' Try 
Catch ex As Exception 
    handleException 
End Try 

ऊपर अक्षम दो टिप्पणी पात्रों को हटाकर:

Try : Catch : End Try 
    doSomething 
    andSomeMore 
    etcEtc 
Try 
Catch ex As Exception 
    handleException 
End Try