Lỗi hệ thống java lang nullpointerexception null là gì
Lập trình viên Java từ lúc bắt đầu đã quá quen thuộc với lỗi Null Pointer Exception (NPE). Hầu hết các trường hợp ngoại lệ NPE đều dễ dàng tìm được ra lỗi, nhưng với các ứng dụng lớn mức độ doanh nghiệp có đến hàng trăm class khác nhau, NPE trở thành cơn ác mộng đích thực. Show NullPointerException là gì?NullPointerException (NPE) là lỗi ngoại lệ xảy ra khi lập trình viên tham chiếu tới Object nhưng nó lại không có vị trí nào trên bộ nhớ (null). Gọi một method tham chiếu null hoặc cố gắng truy cập một trường tham chiếu null là một trong những nguyên nhân phổ biến gây ra lỗi Null Pointer Exception. Theo JavaDoc, NPE được gây ra bởi những nguyên nhân:
Làm cách nào để thực sự phòng tránh được lỗi java.lang.NullPointerException khi chạy chương trình? Bài viết sẽ điểm qua một vài ví dụ gây ra lỗi NPE và những cách giải quyết: Chúng ta tạo lỗi NullPointerException theo 3 cách khác nhau:
Tạo class mẫu như dưới đây: NullPointerExceptionTechmasterVN.java
Két quả như sau:
Dưới đây là một vài mẹo tránh lỗi NullPointerException: 1: Sử dụng gợi ý trên IDE tránh lỗi.png)Gợi ý thông báo trên Eclipse IDE 2: Tạo một methode kiểm tra Object.Bổ sung method vào class NullPointerExceptionTechmasterVN.java
Ta sửa lại code lại methode TechmasterNPE2() trong class chính. `String techmasterString2 = null;
3: Kiểm tra String null sau lệnh thực thi trim()
4: Luôn sử dụng cấu trúc Try Catch bắt lỗi NullPointerException
5: Sử dụng Collections.emptyList()
6: Sử dụng Java Assertions
7: Sử dụng containsKey(), containsValue(), contains() để kiểm tra giá trị null.
Chạy thử class trên, bạn sẽ ra kết quả in chuỗi: "Tránh được lỗi NullPointerException cho key 4". 8: Viết code thật khôn ngoan:Hãy cùng xem hai đoạn code dưới đây:
Khi biến name trong methode trên là null, chúng ta sẽ gặp lỗi NullPointerException. Có thể khắc phục theo cách sau:
0 Chuỗi String "Tăng Thanh Hà" được đặt ở đầu là một đối tượng không bao giờ null nên khi chúng ta sử dụng nó để so sánh với giá trị của biến name, NullPointerException sẽ không bao giờ xảy ra. Hãy luyện tập các ví dụ trên thử nhé, bạn sẽ tiết kiệm được kha khá thời gian trong tương lai khi làm chủ được lỗi NullPointerException đó. |