Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Thông thường như tháng 10 này thông báo thuế vẫn phải kéo dài tới 23 vì còn nhiều doanh nghiệp chưa khai thuế kịp chữ ký số

Show

Để hạn chế trường hợp trên các bạn hãy thử phương pháp này xem.

Bước 1:

Mở IE (Internet Explorer) lên ,trong IE bấm F12 chọn mục Browser Mode IE 7,8 là ok) vào trang kê khai thuế qua mạng của tổng cục thuế., Lưu ý: Phần Java quan trọng nên nhớ cài đặt hoàn chỉnh trước làm tiếp các bước. tải tại đây

http://nhantokhai.gdt.gov.vn

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Bước 2:

Click chọn Tools góc bên trên bên phải như hình vẽ ( hoặc nút ALT trên bàn phím, sẽ xuất hiện menu dưới thanh đường dẫn chọn Tool), sau đó chọn Compatibility View settings.

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Bước 3:

Hệ thống mặc định trang web đang tùy chỉnh là gdt.gov.vn trong khung, Click nút Add và nhớ tick chọn 2 ô phía dưới.

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Bước 4:

Tiếp đến bấm close. IE sẽ tự động refresh lại. Đi pha cà phê 5 phút sau vào lại khai thuế.

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024
Hoàn tất.

Update thêm:

1 nguyên nhân nữa là do máy hệ điều hành cao, nên có máy sữ dụng IE 64bit vì thế anh chị dùng bản IE 32 bit thôi (có sẵn trong máy), Vào ổ C – mục Program files X86 – Internet explorer Như thế sẽ khắc phục được lỗi java.lang.Null.

Lời khuyên:

Các anh chị kế toán muốn khai thuế được nhanh chóng, không bị lỗi phát sinh thì nên hạn chế khai thuế vào những ngày cao điểm, những giờ hành chánh

Chờ đêm về khuya hệ thống khai thuế ít người truy cập nên việc khai thuế trở nên dễ dàng hơn nhiều.

Update thêm: cách khắc phục loi java.lang.nullpointerexception: null

1/ Gỡ bỏ java trong máy, sau đó vào trang phần tra cứu của trang kê khai thuế để tải java và cài đặt lại.

2/ Bật Add-on java: Menu Tool-> Manage Add-on -> Enable Java

3/ Vào trình duyệt IE. Vào menu Tool/internet options chọn thẻ Advanced, click vào nút reset, tick chọn reset personal settings sau đó click nút reset tiếp và đợi quá trình hoàn thành xong khởi động IE lại xem còn bị lỗi nữa không

Trước khi đi vào phần Debug thì mình sẽ viết nốt cái cách mình fix vấn đề ở bài 16 – Đó là việc sử dụng dụng API selenium trực tiếp từ class Test Case. Nếu bạn nào không đọc bài viết trước của mình thì mình có thể tóm tắt lại nội dung như sau:

Mình có 1 test case: sau khi tạo xong 1 bài viết sẽ so sánh cái title của bài viết mình đã tạo vào title của post đó ngoài Front-end xem có đúng ko.

Cũng giống như các phần khác, mình sẽ tạo ra 1 class cho post ở site Front-end, gọi là PostDetail.

public class PostDetailPage { WebDriver driver; public PostDetailPage(WebDriver driver) {

this.driver = driver;
} public String getPostTitle() {
String titlePost = driver.findElement(By.tagName("h1")).getText();
return titlePost;
} }

Sau đó mình sửa lại class Test Case:

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Ok rồi, run thử phát. Và đây là cái mình nhận được.

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Mình cá là các bạn mới học Selenium mà lập trình chưa vững thì ít nhất cũng đã một lần mắc cái lỗi này. Vậy thì lỗi nào là gì và cách fix ra sao?

NullPointerException là một exception được định nghĩa trong Java, nó thể hiện rằng ta đang sử dụng 1 Object mà nó ko có vị trí nào trên bộ nhớ (null). Và như các bạn nhìn thấy ở trên, đây ko phải là loại lỗi syntax để mà IDE có thể báo lỗi cho mình. Do đó mình cần phải sử dụng cách khác.

Cách fix: Tìm xem cái Object đang bị null nằm ở đâu và fix cho nó hết null. =))))

Bước 1: Tìm Object bị null.

Theo hình ở trên, thì lỗi xảy ra ở dòng thứ 26, nơi sử dụng dòng lệnh Assert kết quả.

Bắt đầu tiến hành Debug:

  • Đặt 1 Break Point ở dòng thứ 26 bằng cách DoubleClick chuột trái.

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

  • Ở trong dòng thứ 26 này chỉ có 1 Object được sử dụng là Object của class PostDetailPage và Object chỉ đang sử dụng method getPostTitle(). —> Tiếp tục đặt Break Point ở dòng lệnh bên trong method.

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

  • Thực hiện run ở chế độ Debug trên Eclipse:

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Run ở chế độ Debug thực ra cũng không khác run ở chế độ Run code bình thường, điểm khác duy nhất là hệ thống sẽ dừng lại ở điểm mà ta đặt Break Point.

Giả sử luồng code: A –> B –> C –> D –> E

Nếu C và D là 2 điểm mà ta đặt Break Point thì C là điểm đầu tiên mà hệ thống sẽ dừng lại. Ở tại vị trí này ta có thể xem được các Object ở tại thời điểm này đang có id là bao nhiêu, các biến thì có giá trị như thế nào.

Khi đến chạy đến điểm Break Point đầu tiên, Eclipse sẽ hiển thị thông báo xem chúng ta có muốn hiển thị Layout ở chế độ Debug hay ko? —> Ấn OK luôn. Bạn nào thích thì check luôn vào box “Remember my decision” để lần sau ko bị hỏi lại.

Ở chế độ Debug có những điểm sau cần chú ý:

  • Bảng điều khiển

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

  1. Resume: Thực hiện tiếp code cho đến hết.
  2. Suspend: Pause lại và giữ nguyên hiện trạng
  3. Terminate: Chấm dứt hẳn phiên debug.
  4. Step into: Nhảy đến cái dòng code tiếp theo trong luồng run code (step by step)
  5. Step Over: Nhảy đến Break Point tiếp theo. Nếu không có Break Point thì nó sẽ run hết function hiện tại trong 1 lượt rồi dừng lại ở function kế tiếp.
  6. Step Return: Khi ra không còn muốn debug step by step nữa, ta muốn nó run toàn bộ cái function trong 1 lần cho đến thời điểm function đó return kết quả.
  7. Khu vực code và xem giá trị của các Object và biến hiện tại:

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Nhìn vảo bảng giá trị các Object, ta dễ dàng có thể nhận ra postDetailPg đang null

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024


Bước 2: Cách sửa Object bị null.

Ta có thể có nhiều nguyên nhân của việc null này nhưng ta có thể khoanh vùng lại 2 khả năng:

  • Chưa có hàm khởi tạo (constructor)

Cái này bỏ qua vì ta đã có hàm khởi tạo cho nó rồi. (Nhìn lên đoạn code ở phía đầu bài viết)

  • Chưa khởi tạo Object

Hiện tại đúng là chưa có dòng code khởi tạo Object thật, mới chỉ có khai báo biến. Ta add thêm 1 dòng code khởi tạo Object là xong. Run và thấy xanh lè. 😀

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024

Sau khi fix xong bug, muốn trở lại Layout code như bình thường, ấn vào icon Java ở góc phải của Eclipse.

Lỗi java.lang.nullpointerexception null là gì lap trinh java năm 2024


Tóm tắt lại quy trình Debug nói chung:

  1. Dựa vào Stack Trace / Log –> tìm dòng code lỗi.
  2. Đặt Break Point tại dòng code đó và 1 số dòng code trong các function mà dòng code lỗi có sử dụng.
  3. Sử dụng bảng điều khiển linh hoạt để đến được vị trí mình cần hoặc mình nghĩ là sẽ có lỗi.
  4. Theo dõi giá trị các Object và các biến tại từng thời điểm
  5. Tìm ra nguyên nhân gốc rồi fix.

Đôi khi ta không cần dùng đến chức năng Debug để tìm nguyên nhân do nó quá hiển nhiên. Nhưng ta nên tập debug vì Debug sẽ mô tả luồng code chạy, ta sẽ hiểu hơn về ngôn ngữ và check xem framework đã chạy đúng ý ta chưa.

Trên đây là cách mình Debug Java, bạn nào có cách nào hay hơn hoặc thấy mình sai ở đâu đấy, vui lòng comment xuống phía dưới. Thank you!