2008-09-17 20 views
52

ELMAH ngoại lệ đã đăng nhập ngay cả khi chúng không bong bóng lên ứng dụng? Tôi muốn bật lên một tin nhắn khi một ngoại lệ xảy ra và vẫn đăng nhập ngoại lệ. Hiện tại tôi đã đưa mọi thứ vào thử các khối catch và phun ra các thông điệp, nhưng điều này trở nên tẻ nhạt.Elmah có xử lý các trường hợp ngoại lệ cũng như

Trả lời

127

ELMAH đã được cập nhật để hỗ trợ tính năng mới có tên là Signaling.

Điều này cho phép bạn xử lý ngoại lệ theo cách bạn muốn, trong khi vẫn ghi nhật ký vào ELMAH.

try 
{ 
    int i = 5; 
    int j = 0; 
    i = i/j; //Throws exception 
} 
catch (Exception ex) 
{ 
    MyPersonalHandlingCode(ex); 
    ErrorSignal.FromCurrentContext().Raise(ex); //ELMAH Signaling 
} 

Trường hợp ngoại lệ ném có thể là hành vi không tốt vì khó theo dõi luồng của ứng dụng. Sử dụng Signaling là một cách tiếp cận tốt hơn nhiều nếu bạn định xử lý lỗi trong một số thời trang và đơn giản là muốn ghi lại nó.

Xin hãy kiểm tra hướng dẫn tuyệt vời này bằng cách DotNetSlackers on ELMAH

+8

có thể đạt được điều đó bằng cách sử dụng một số loại thuộc tính/bộ lọc không? Bởi vì để đặt mã đó bên trong mỗi lần bắt nó là nhiều tôi nghĩ, nó sẽ là tốt để có loại như vậy của bộ lọc mà sẽ làm điều đó. – Kuncevic

+0

trớ trêu thay rằng liên kết dognetslackers dẫn đến một trang lỗi không được xử lý. Điều này phải là một troll? – niico

+0

đã lưu ngày của tôi .. – NMathur

6

Một bộ lọc là cách sạch nhất để xử lý vấn đề này. Kiểm tra giải pháp này ở đây https://stackoverflow.com/a/5936867/965935

+2

Theo như tôi hiểu, bộ lọc sẽ không thể bắt được ngoại lệ đã được xử lý trong khối thử try. Kiểm tra câu trả lời ở đây [link] (http://stackoverflow.com/a/21864117/694457). – frezq

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