Chúng tôi đang khởi chạy một hệ thống và đôi khi chúng tôi nhận được ngoại lệ nổi tiếng NullReferenceException
với thông báo Object reference not set to an instance of an object
.
Tuy nhiên, trong một phương thức mà chúng ta có gần 20 đối tượng, có một nhật ký cho biết một đối tượng là null, thực sự không có ích gì cả. Nó giống như nói với bạn, khi bạn là nhân viên an ninh của một cuộc hội thảo, rằng một người đàn ông trong số 100 người tham dự là một kẻ khủng bố. Điều đó thực sự không có ích gì với bạn cả. Bạn nên lấy thêm thông tin, nếu bạn muốn phát hiện người đàn ông nào là người đàn ông đe dọa.
Tương tự như vậy, nếu chúng ta muốn loại bỏ lỗi, chúng ta cần phải biết đối tượng nào là null.
Bây giờ, một cái gì đó đã ám ảnh tâm trí tôi trong vài tháng, và đó là:
Tại sao .NET không cung cấp cho chúng tôi tên, hoặc ít nhất là loại tham chiếu đối tượng, là null? . Nó không thể hiểu loại từ phản ánh hoặc bất kỳ nguồn nào khác?
Ngoài ra, các thực tiễn tốt nhất để hiểu đối tượng nào là null? Chúng ta có nên luôn kiểm tra tính vô hiệu của các đối tượng trong các bối cảnh này bằng tay và ghi lại kết quả không? Có cách nào tốt hơn?
Cập nhật:
Ngoại lệ The system cannot find the file specified
có cùng bản chất. Bạn không thể tìm thấy tập tin nào, cho đến khi bạn đính kèm vào quy trình và gỡ lỗi. Tôi đoán những loại ngoại lệ này có thể trở nên thông minh hơn. Sẽ không tốt hơn nếu .NET có thể cho chúng ta biết c:\temp.txt doesn't exist.
thay vì thông điệp chung đó? Là một nhà phát triển, tôi bỏ phiếu có.
new
để tạo các thể hiện của một lớp. Khi nào một gợi ý như vậy thực sự giúp đỡ?