[Thực hành] Debug ứng dụng Java

Xử lí ngoại lệ và Debug

Mục tiêu

Bài viết này hướng dẫn debug ứng dụng Java bằng Jetbrains IntelliJ.

Mô tả

Debug ám chỉ việc tìm và giải quyết các vấn đề trong chương trình mà làm cho chương trình hoạt động không như mong muốn: không chạy được, chạy và bị crash, chạy không đúng chức năng được mô tả…

Để đạt được mục tiêu đó có nhiều phương pháp, ghi thông số hoạt động ra console, ghi thông số hoạt động ra file log, đọc và theo dõi bộ nhớ của chương trình, kiểm thử đơn vị,…

IntelliJ cung cấp phương án debug tương tác một cách rất trực quan, mời các bạn cùng theo dõi.

Hướng dẫn

Bước 1: Chuẩn bị một chương trình Java đơn giản.

Ở đây sử dụng chương trình giải phương trình bậc nhất.

Bước 2: Đặt các breakpoints

Để bắt đầu một phiên debug, trước tiên cần định vị các câu lệnh đứng ở vị trí mà ta muốn tạm ngừng sự thực thi của chương trình. Trong hình dưới đây, ta tạm ngừng sự thực thi ở trước câu lệnh đọc giá trị biến a và b.

Để đặt được debug như thế, nhấn chuột phải vào phần lề trái của Editor.

Khi trỏ chuột vào breakpoints, những thuộc tính của nó sẽ hiện ra, bạn có thể right-click vào để hiển thị hộp thoại chi tiết:

Ta có thể đặt điều kiện để breakpoint chỉ được kích hoạt trong một số điều kiện nhất định, trong ví dụ sau đây, breakpoint thứ 2 chì được kích hoạt khi a khác 0:

Bước 3: Bắt đầu phiên debug

Một khi những điểm break đã được định vị, bạn có thể bắt đầu phiên debug. Có nhiều cách để thực hiện, hình sau đây thể hiện cách đơn giản nhất.

Bạn sẽ thấy dòng mã ở điểm break đầu tiên chuyển sang màu xanh, ám chỉ rằng trình thực thi đang tạm dừng tại trước câu lệnh đó. Bạn cũng quan sát thấy kiểu và giá trị của các biến có trong ngữ cảnh tại thời điểm tạm dừng:

Bạn cũng sẽ quan sát thấy một panel “Debug” hiện lên ở phần cạnh dưới của IDE. Nó hiển thị chi tiết thông tin về các biến và hằng có mặt trong ngữ cảnh:

Để ý mũi tên xổ xuống ở tab Console, ám chỉ rằng có một số output mới đã xuất hiện ở console mà bạn chưa được nhìn thấy.

Bước 4: Theo dõi sự vận hành của chương trình

Theo dõi chương trình vận hành qua từng dòng mã

Đơn giản là nhấn nút như ở hình dưới đây, hoặc nhấn F8 và nhập giá trị vào từ bàn phím theo yêu cầu của câu lệnh. Để ý, mỗi khi điểm debug chuyển sang dòng mới, số dòng đó sẽ được cập nhật ở panel Frames.

Khi cần cho trình thực thi chạy tự do tới điểm debug tiếp theo (hoặc tới điểm kết thúc chương trình), bạn nhấn nút như hình dưới, hoặc nhấn phím tắt (có thể khác nhau ở mỗi môi trường):

Theo dõi chương trình vận hành qua từng lời gọi phương thức

Để dễ theo dõi, trước tiên bạn hãy kết thúc phiên debug hiện tại và bắt đầu bằng một phiên mới.

Khi gặp điểm debug đầu tiên, hãy nhấn nút như hình dưới đây, hoặc sử dụng phím tắt:

Bạn sẽ thấy điểm debug chuyển sang một vị trí khác lạ:

Điều này có nghĩa là trình thực thi đã bước vào bên trong phương thức nextDouble của gói java.util. Hãy để ý rằng một frame mới đã được thêm vào danh sách các frames:

Chú ý luôn lưu ý dấu mũi tên xổ xuống ở tab Console.

Hãy sử dụng các nút điều khiển debug đã học để tiếp tục debug chương trình.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *