2009-04-02 18 views
8

Cách tốt nhất để xử lý các ngoại lệ xảy ra trong các câu lệnh khai thác là gì. Hiện tại chúng tôi đang viết thông báo ngoại lệ cho phương thức ghi của đối tượng phản hồi. Nhưng tôi muốn một giải pháp mà theo đó người dùng sẽ chỉ nhận được một thông báo lỗi chung là đã xảy ra sự cố nhưng chúng tôi phải nhận được mô tả chi tiết về lỗi. Tôi muốn biết các thực hành khác nhau được sử dụng để xử lý ngoại lệ trong C#.Các phương pháp xử lý các ngoại lệ trong một dự án web bằng cách sử dụng C#

Trả lời

7

Đối với dự án web và để bảo vệ chống lại bất kỳ ngoại lệ nào bị đẩy xuống trình duyệt, bạn có thể bật Theo dõi sức khỏe và sử dụng Trang lỗi tùy chỉnh. Nếu bạn đang mong đợi khả năng của một ngoại lệ bên trong câu lệnh khai thác, chỉ đơn giản là tổ một thử khác bắt trong đó để nó rơi trên duyên dáng.

Trong global.asax bạn cũng có thể đăng ký các sự kiện Application_Error, mà sẽ được gọi cho một ngoại lệ unhandled

Andrew

Giám sát sức khỏe trong ASP.NET: http://www.4guysfromrolla.com/articles/031407-1.aspx

+0

Chắc chắn là cách để đi +1 –

1

Ghi vào nhật ký sự kiện là một trong các tùy chọn.

2

Tôi muốn ghi lại lỗi chi tiết vào cơ sở dữ liệu của mình và chuyển hướng người dùng đến trang lỗi chung.

4

Tốt cho bạn vì muốn sửa lỗi này. Việc viết các thông báo ngoại lệ trực tiếp lại cho người dùng có thể gây ra rủi ro bảo mật đáng kể - như bạn đã biết, các thông báo ngoại lệ có thể chứa nhiều thông tin có thể giúp người dùng độc hại truy cập vào trang web của bạn.

Tôi sẽ xem ELMAH (Mô-đun và trình xử lý đăng nhập lỗi); đó là một cách dễ dàng để thêm ghi nhật ký các lỗi chi tiết vào ứng dụng web của bạn.

1

Như REA_ANDREW đã nói, hãy sử dụng Giám sát sức khỏe cùng với các trang lỗi tùy chỉnh.

Một điều anh ta không nói một cách rõ ràng là bạn nên tránh kiểu lập trình đặt các khối try/catch xung quanh mọi thứ. Giám sát sức khỏe sẽ ghi lại các ngoại lệ chưa được xử lý và các trang lỗi tùy chỉnh sẽ hiển thị cho người dùng bất cứ điều gì bạn muốn người dùng xem về lỗi (nếu có). Nhưng điều này sẽ chỉ xảy ra nếu bạn làm không phải bắt các ngoại lệ, vì vậy, hãy để chúng một mình và cho phép chúng truyền bá.

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