Nếu bạn chỉ cần thêm thông tin vào ngoại lệ ban đầu, chẳng hạn như thư có thể đọc được hoặc chi tiết cụ thể hữu ích cho bạn khi theo dõi lỗi, nhưng điều đó sẽ không hữu ích cho người dùng cuối, bạn có thể sử dụng thuộc tính Data của Exception, đây là từ điển cặp khóa/giá trị.
Chúng tôi sử dụng rộng rãi để ghi lại thông tin như báo cáo đang được thực hiện hoặc tệp đang được xử lý để các hoạt động có thể xác định chính xác những gì đang xảy ra tại thời điểm xảy ra lỗi. Người dùng không cần chi tiết này vì họ đang làm việc trực tiếp với nguyên nhân gây ra lỗi.
Bạn cũng có thể sử dụng quyền này để chuyển một tin nhắn văn bản thuần túy có ý nghĩa với người dùng. Vấn đề duy nhất là bạn sẽ phải thực hiện một số công việc bổ sung trong khung đăng nhập của bạn hoặc giao diện người dùng cuối để trích xuất dữ liệu và làm cho nó hữu ích cho người tiêu dùng.
Ví dụ, bạn có thể làm:
catch (Exception ex)
{
ex.Data.Add("UserMessage", "An error occurred while trying to load the XSLT file.");
throw;
}
Sau đó, trong client-side code, bạn có thể kiểm tra để xem nếu UserMessage tồn tại và nếu như vậy, hiện tại nó cho người sử dụng thay cho Ngoại lệ:
catch (Exception ex)
{
if (ex.Data.Contains("UserMessage"))
{
MessageBox.Show(ex.Data["UserMessage"].ToString());
}
else
{
MessageBox.Show(ex.Message);
}
}
Nguồn
2013-01-19 01:28:02
Thêm ngoại lệ ban đầu dưới dạng 'Ngoại lệ' trên' FatalException'? –
Đó là vào cuối của 'ném mới FatalException (" tin nhắn ", cũ)'. – krillgar
Tại sao bạn muốn làm những gì hiển thị của bạn? Chỉ bắt ngoại lệ bạn có thể làm điều gì đó với. Nếu không, hãy để chúng bong bóng lên. – Mark