2011-06-23 21 views

cevap

109
  1. Böyle kaldırabilirsiniz:

    try 
    { 
        doSomething() 
    } 
    catch (AmbiguousMatchException) 
    { 
        doSomethingElse() 
    } 
    
  2. kullanın uyarısı böyle devre dışı bırakın:

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

Diğer tanıdık uyarı devre dışı

#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

listesi http://msdn.microsoft.com/en-US/library/ms228296 (v = VS ([MSDN'den] mevcuttur. 80) .aspx) –

+0

@ fparadis2 tarafından verilen çözüm, ilk önerim olan – Rama

+0

@dasariramacharanprasad'ı düzeltebildiğimiz uyarılar bastırılmaması gerektiğinden daha iyidir, yanıtımı yeniden okuyun;) –

26

İstisna, MyException için bir ad bildirirsiniz, ancak bununla hiçbir şey yapmazsınız. Kullanılmadığından, derleyici bunu işaret ediyor.

Sadece adı kaldırabilirsiniz.

catch (AmbiguousMatchException) 

ve catch bloğundaki kullanmadan olmayacak eğer istisna adını ihmal:

catch(AmbiguousMatchException) 
{ 
    doSomethingElse(); 
} 
18

Sadece yazabilirsiniz.

+0

+1 bu uyarıyı çözdüğü için! [MSDN] 'da açıklanmadı (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) rd = doğru). – Rama

2

Sorun şu ki, MyException değişkeninizi hiçbir yerde kullanmıyorsunuz. Bildirildi, ancak kullanılmıyor. Bu bir problem değil ... sadece onu kullanmak istediğinizde bir derleyici veren derleyici.

2

Bir koşuya sahipseniz istisnai bir günlüğe yazabilirsiniz. Herhangi bir sorunu izlemek için yararlı olabilir.

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

Hata mesajı nerede saklanacak? –

İlgili konular