Tôi chắc rằng tôi đã thấy điều này trong các thông báo ngoại lệ khác nhau trong khung công tác. Tôi đã kiểm tra các trang sau từ thư viện MSDN nhưng không thể tìm thấy nhiều hướng dẫn về nội dung thông điệp:Tại sao thư được xây dựng trong ngoại lệ có xu hướng không có chi tiết cụ thể? (ví dụ: khóa từ điển)
Exception Throwing
Error Message Design
Exception.Message Property
Phần duy nhất trong trang đầu tiên mà có thể giải thích đó là văn bản này:
Không tiết lộ thông tin nhạy cảm về bảo mật trong thông báo ngoại lệ mà không yêu cầu quyền thích hợp.
Đó là ArgumentException được ném bởi Dictionary<TKey, TValue>.Add method nhắc tôi về sự cố này. Có vẻ như sau:
System.ArgumentException : An item with the same key has already been added.
Tại sao nó không giống như thế này?
System.ArgumentException : An item with the same key(123) has already been added.
Giả định 123 là giá trị TKey, về cơ bản bất kỳ định dạng nào có giá trị TKey là điều tôi sẽ hữu ích khi theo dõi lỗi trong khi gỡ lỗi.
Có lý do nào được biết tại sao điều này không được bao gồm không?
Nó có được coi là hành vi xấu để tái ném ngoại lệ đối số bằng khóa trong thư không? Tôi đã xem xét việc tạo phân lớp ngoại lệ của riêng mình nhưng tôi nghĩ đây là trường hợp khi sử dụng một lớp ngoại lệ được xây dựng có vẻ như là một lựa chọn tốt hơn.
Có lẽ vì lý do địa phương hóa – SLaks
Điều đó có thể có ý nghĩa. Bởi vì TKey có thể thuộc nhiều loại khác nhau nên chúng có thể áp dụng chung, về cơ bản là một thông điệp cố định. – Kioshiki
Tôi nghĩ vì 'Từ điển' là mục đích chung và khóa có thể chứa thông tin nhạy cảm về bảo mật. Nếu bạn biết chính xác rằng khóa của bạn không nhạy cảm với bảo mật, vì vậy bạn nên thêm nó vào thư của ngoại lệ. – tia