Lập trình viên Java đã quen thuộc với các lỗi Null Pointer Exception (npe) ngay từ đầu. Hầu hết các ngoại lệ của npe đều dễ tìm, nhưng đối với các ứng dụng doanh nghiệp lớn với hàng trăm lớp khác nhau, npes trở thành cơn ác mộng thực sự. Ngoại lệ nullpointer là gì?
Ngoại lệ nullpointer (npe) là một ngoại lệ xảy ra khi một lập trình viên đề cập đến một đối tượng nhưng nó không có chỗ trong bộ nhớ (null). Gọi một phương thức có tham chiếu null hoặc cố gắng truy cập trường tham chiếu null là một trong những nguyên nhân phổ biến gây ra ngoại lệ con trỏ null.
-
Theo javadoc, npe do:
-
Ném null giống như một giá trị.
-
Gọi phương thức thể hiện của đối tượng null.
-
Truy cập hoặc tùy chỉnh trường giá trị của một đối tượng trống.
-
Lấy độ dài của null ở dạng mảng.
-
Truy cập hoặc tùy chỉnh các giá trị null dưới dạng một mảng.
-
Xem Thêm: Bị sưng mí mắt dưới hoặc trên: Nguyên nhân và điều trị
Làm cách nào để thực sự tránh được các lỗi ngoại lệ java.lang.nullpointer khi chạy chương trình?
Bài viết sẽ đưa ra một số ví dụ và giải pháp gây ra lỗi npe:
Chúng tôi tạo lỗi nullpointerException theo 3 cách khác nhau:
-
Sẽ xảy ra lỗi npe nếu bạn cố gắng truy cập một đối tượng rỗng.
-
Sẽ xảy ra lỗi npe nếu bạn cố thay đổi một chuỗi rỗng.
-
Nếu bạn cố gắng truy cập một đối tượng null trong quá trình khởi tạo lớp, nó sẽ gây ra lỗi npe.
Tạo một lớp ví dụ như sau:
Kết quả như sau:
Dưới đây là một số mẹo để tránh ngoại lệ con trỏ null:
Xem Thêm: Ợ hơi liên tục trong ngày là bệnh gì? Có nguy hiểm không?
#1: Sử dụng lời khuyên của IDE để tránh sai lầm
Thông báo chung trên IDE có lời khuyên để tránh lỗi.
#2: Phương thức tạo đối tượng thử nghiệm.
Thêm phương thức vào lớp nullpointerExceptiontest.java
Chúng ta viết lại phương thức npe2() trong lớp chính.
#3: Kiểm tra chuỗi rỗng sau trim()
#4: Luôn sử dụng cấu trúc try catch để bắt ngoại lệ nullpointer
#5: Sử dụng bộ sưu tập.emptylist()
Xem Thêm: Xăm hình tả thực
#6: Sử dụng xác nhận java
#7: Sử dụng khóa chứa (), chứa giá trị (), chứa () để kiểm tra các giá trị null.
Kiểm tra lớp trên, bạn sẽ xuất ra kết quả đầu ra là chuỗi: “avoid nullpointerException error for key 4”
#8: Viết mã khôn ngoan:
Hãy xem hai đoạn mã sau:
Khi biến name trong phương thức trên là null, chúng ta sẽ gặp lỗi NullPulumException.
Có thể khắc phục bằng cách:
string string string “test doan text” ban đầu là một đối tượng không bao giờ có giá trị null nên khi chúng ta dùng nó để so sánh giá trị của một tên biến thì sẽ không bao giờ xảy ra ngoại lệ nullpointer.
Hãy thực hành các ví dụ trên nhiều hơn, và việc thành thạo lỗi nullpointerException sẽ giúp tiết kiệm rất nhiều thời gian trong tương lai.
-
Khôi phục bài viết từ Wayback Machine