2011-06-23 22 views

Trả lời

109
  1. Bạn có thể loại bỏ nó như thế này:

    try 
    { 
        doSomething() 
    } 
    catch (AmbiguousMatchException) 
    { 
        doSomethingElse() 
    } 
    
  2. Sử dụng cảnh báo vô hiệu hóa như thế này:

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

cảnh báo quen thuộc khác vô hiệu hóa

#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

Một danh sách tất cả các lỗi biên dịch và cảnh báo có sẵn tại [MSDN] (http://msdn.microsoft.com/en-US/library/ms228296 (v = VS. 80) .aspx) –

+0

Giải pháp được đưa ra bởi @ fparadis2 tốt hơn vì không được khuyến khích để ngăn chặn cảnh báo khi chúng tôi có thể sửa lỗi – Rama

+0

@dasariramacharanprasad đó là đề xuất đầu tiên của tôi, đọc lại câu trả lời của tôi;) –

26

Bạn khai báo tên ngoại lệ, MyException, nhưng bạn không bao giờ làm bất cứ điều gì với nó. Vì nó không được sử dụng, trình biên dịch chỉ ra nó.

Bạn chỉ cần xóa tên.

catch(AmbiguousMatchException) 
{ 
    doSomethingElse(); 
} 
18

Bạn chỉ có thể viết:

catch (AmbiguousMatchException) 

và bỏ qua tên ngoại lệ nếu bạn sẽ không được sử dụng nó trong mệnh đề catch.

+0

+1 kể từ khi nó giải quyết cảnh báo! không được giải thích trong [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) & rd = true). – Rama

2

Vấn đề là, bạn không sử dụng biến số MyException ở bất cứ đâu. Nó được khai báo, nhưng không được sử dụng. Đây không phải là một vấn đề ... chỉ là trình biên dịch cho bạn một gợi ý trong trường hợp bạn định sử dụng nó.

2

Bạn có thể viết ngoại lệ vào nhật ký nếu bạn có một lần chạy. Có thể hữu ích cho việc theo dõi bất kỳ vấn đề nào.

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

thông báo lỗi sẽ được lưu ở đâu? –

Các vấn đề liên quan