2011-06-23 11 views

Odpowiedz

109
  1. Można usunąć go tak:

    try 
    { 
        doSomething() 
    } 
    catch (AmbiguousMatchException) 
    { 
        doSomethingElse() 
    } 
    
  2. Korzystanie ostrzeżenie wyłączyć tak:

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

Inny znajomy ostrzeżenie wyłączyć

#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

wykaz wszystkich błędów kompilator ostrzeżenia są dostępne w [MSDN] (http://msdn.microsoft.com/en-US/library/ms228296 (v = VS. 80) .aspx) –

+0

Rozwiązanie podane przez @ fparadis2 jest lepsze, ponieważ nie zaleca się tłumienia ostrzeżeń, gdy możemy go naprawić – Rama

+0

@dasariramacharanprasad, co było moją pierwszą sugestią, ponownie przeczytaj moją odpowiedź;) –

26

Deklarujesz nazwę wyjątku MyException, ale nigdy nic z nią nie robisz. Ponieważ nie jest używany, kompilator go wskazuje.

Możesz po prostu usunąć nazwę.

catch(AmbiguousMatchException) 
{ 
    doSomethingElse(); 
} 
18

można po prostu napisać:

catch (AmbiguousMatchException) 

i pominąć nazwę wyjątku, jeśli nie będzie używać go w klauzuli catch.

+0

+1, ponieważ rozwiązuje ostrzeżenie! nie wyjaśnione w [MSDN] (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-CSHARP) i rd = true). – Rama

2

Kłopot w tym, że nie używasz żadnej zmiennej MyException w dowolnym miejscu. Zostaje zadeklarowany, ale nie jest używany. To nie jest problem ... tylko kompilator daje ci wskazówkę na wypadek, gdybyś chciał z niej skorzystać.

2

Możesz napisać wyjątek do dziennika, jeśli masz jeden uruchomiony. Może być przydatny do śledzenia problemów.

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

gdzie będzie przechowywany komunikat o błędzie? –