2011-06-23 11 views
55

मैं इस चेतावनी को स्पष्ट करने की आवश्यकता नहीं:चर 'MyException' घोषित किया जाता है, लेकिन उनका उपयोग

try 
{ 
    doSomething() 
} 
catch (AmbiguousMatchException MyException) 
{ 
    doSomethingElse() 
} 

संकलक कह रहा है:

चर 'MyException' घोषित किया जाता है, लेकिन

इस्तेमाल कभी नहीं

मैं इसे कैसे ठीक कर सकता हूं।

+0

उपयोग पकड़ (अपवाद) –

उत्तर

109
  1. आप इस तरह निकाल सकते हैं:

    try 
    { 
        doSomething() 
    } 
    catch (AmbiguousMatchException) 
    { 
        doSomethingElse() 
    } 
    
  2. उपयोग चेतावनी इस तरह अक्षम करें:

    try 
    { 
        doSomething() 
    } 
    #pragma warning disable 0168 
    catch (AmbiguousMatchException exception) 
    #pragma warning restore 0168 
    { 
        doSomethingElse() 
    } 
    

अन्य परिचित चेतावनी को निष्क्रिय

#pragma warning disable 0168 // variable declared but not used. 
#pragma warning disable 0219 // variable assigned but not used. 
#pragma warning disable 0414 // private field assigned but not used. 
+4

सभी संकलक त्रुटियों और चेतावनियों की एक सूची http://msdn.microsoft.com/en-US/library/ms228296 (v = वी.एस. पर [MSDN] उपलब्ध (कर रहे हैं। 80) .aspx) –

+0

@ fparadis2 द्वारा दिया गया समाधान बेहतर है क्योंकि चेतावनी चेतावनियों के लिए सलाह नहीं दी जाती है जब हम इसे – Rama

+0

@ दशरिरमचरणप्रसाद को ठीक कर सकते हैं जो मेरा पहला सुझाव था, मेरा जवाब दोबारा पढ़ें;) –

26

आप अपवाद के लिए एक नाम घोषित करते हैं, MyException, लेकिन आप इसके साथ कुछ भी नहीं करते हैं। चूंकि इसका उपयोग नहीं किया जाता है, इसलिए संकलक इसे इंगित करता है।

आप बस नाम हटा सकते हैं।

catch(AmbiguousMatchException) 
{ 
    doSomethingElse(); 
} 
18

आप बस लिख सकते हैं:

catch (AmbiguousMatchException) 

और अपवाद नाम हटा दें यदि आप पकड़ खंड में इसे का उपयोग नहीं किया जाएगा।

+0

+1 क्योंकि यह चेतावनी का समाधान करता है! [एमएसडीएन] में समझाया नहीं गया है (http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k (RETHROWTOPRESERVESTACKDETAILS); k (TargetFrameworkMoniker-% 22.NETFRAMEWORK% 2cVERSION% 3dV4.0 % 22); k (DevLang-कोई तिथि नहीं) & rd = सच)। – Rama

2

समस्या यह है कि आप कहीं भी अपने चर MyException का उपयोग नहीं कर रहे हैं। यह घोषित हो जाता है, लेकिन इसका उपयोग नहीं किया जाता है। यह कोई समस्या नहीं है ... केवल संकलक आपको इसका उपयोग करने के इरादे में संकेत देता है।

2

यदि आप एक चल रहे हैं तो आप एक लॉग में अपवाद लिख सकते हैं। किसी भी समस्या को ट्रैक करने के लिए उपयोगी हो सकता है।

Log.Write("AmbiguousMatchException: {0}", MyException.Message); 
+0

त्रुटि संदेश कहाँ संग्रहीत किया जाएगा? –

संबंधित मुद्दे