JavaRush /Blog Java /Random-VI /Gỡ lỗi trong Intellij IDEA: hướng dẫn dành cho người mới ...
Roman Beekeeper
Mức độ

Gỡ lỗi trong Intellij IDEA: hướng dẫn dành cho người mới bắt đầu

Xuất bản trong nhóm
Xin chào mọi người, cộng đồng JavaRush. Hôm nay chúng ta sẽ nói về việc gỡ lỗi: nó là gì và cách gỡ lỗi trong Intellij IDEA. Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 1Bài viết dành cho những người đã có kiến ​​thức tối thiểu về Java Core. Sẽ không có khuôn khổ hoặc quy trình phức tạp nào để xuất bản thư viện. Dễ dàng đi bộ. Vì vậy, hãy thoải mái và bắt đầu!

Tại sao bạn cần gỡ lỗi?

Hãy làm rõ ngay: không có mã nào không có lỗi... Đây là cách cuộc sống vận hành. Vì vậy, chúng ta không nên ngay lập tức trở nên khập khiễng và từ bỏ mọi thứ nếu mã không hoạt động như chúng ta mong đợi. Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 2Nhưng phải làm gì? Tất nhiên, bạn có thể hướng dẫn System.out.printlnbất cứ khi nào có thể và sau đó xem qua đầu ra trong thiết bị đầu cuối với hy vọng rằng bạn có thể tìm thấy lỗi. Tuy nhiên, điều đó vẫn có thể xảy ra... và họ thực hiện điều đó và thực hiện điều đó một cách cẩn thận bằng cách ghi nhật ký (bạn có thể đọc về điều đó tại đây ). Nhưng nếu có thể chạy mã trên máy cục bộ thì nên sử dụng Debug . Tôi muốn lưu ý ngay rằng trong bài viết này, chúng tôi sẽ xem xét việc gỡ lỗi một dự án bên trong Intellij IDEA. Nếu bạn muốn đọc về gỡ lỗi từ xa, đây là bài viết từ tài nguyên của chúng tôi .

Gỡ lỗi là gì

Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 3Gỡ lỗi là quá trình gỡ lỗi (kiểm tra) mã, trong quá trình thực thi mã, bạn có thể dừng lại ở một nơi được chỉ định và xem tiến trình thực thi. Hiểu trạng thái của chương trình ở một nơi nhất định. Nó giống hệt như việc bạn có thể dừng cuộc sống và nhìn mọi thứ từ bên ngoài. Thật tuyệt phải không? Mục tiêu của chúng tôi là học cách gỡ lỗi ứng dụng một cách nhanh chóng và dễ dàng bằng môi trường phát triển yêu thích của chúng tôi, Intellij IDEA.

Những gì bạn cần để bắt đầu gỡ lỗi

Tôi đưa ra lời khuyên miễn phí: trong khi bạn đang đọc bài viết, hãy làm mọi thứ sẽ được mô tả ở đây, may mắn thay, có mọi thứ cho việc này. Bạn cần gì:
  1. Môi trường phát triển Intellij IDEA phiên bản 2019.3.1 trở lên. Trong trường hợp ai đó không có nó, đây là liên kết để bạn có thể tải xuống. Tải xuống Phiên bản cộng đồng vì đó là phiên bản tôi sẽ sử dụng.
  2. Sao chép dự án từ GitHub và nhập nó qua IDEA.
Mở IDEA: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 4Chọn dự án trình bày gỡ lỗi , nhấp vào OK và nhận: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 5Rời khỏi dự án nhập từ nguồn bên ngoài, Maven và nhấp vào Kết thúc . Sau khi nhập dự án, chúng ta có thể mô tả quy trình bằng một ví dụ trực tiếp.

Một chút lý thuyết... hứa đấy :D

Để bắt đầu gỡ lỗi một chút, bạn cần hiểu breakPoint là gì và hiểu một số phím nóng mà bạn cần để bắt đầu. BreakPoint là một điểm đánh dấu đặc biệt hiển thị vị trí hoặc trạng thái mà ứng dụng sẽ dừng lại. Bạn có thể đặt điểm dừng bằng cách nhấp chuột trái vào thanh bên trái hoặc bằng cách nhấp vào vị trí mã và nhấn Ctrl + F8 . Điểm ngắt có ba loại: dấu dòng, dấu biến và dấu phương thức. Nó trông như thế này:
  • Mỗi dòng:

    Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 6

    nếu có biểu thức lambda trong biểu thức thì IDEA sẽ đưa ra cho bạn một lựa chọn - đặt biểu thức trên toàn bộ dòng hoặc cụ thể là trong biểu thức lambda:

    Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 7
  • Mỗi phương pháp:

    Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 8
  • Mỗi lớp

    Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 9
Điểm dừng có thể được loại bỏ bằng cách làm theo các bước tương tự như khi thêm chúng. Có những tình huống bạn cần làm cho chúng không hoạt động (tắt tiếng). Để thực hiện việc này, trong phần Gỡ lỗi, bạn có thể tìm thấy một biểu tượng Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 10sẽ làm cho tất cả các điểm ngắt không hoạt động. Để xem điểm dừng nào đã được đặt, bạn có thể vào Debug ở góc dưới bên trái và tìm biểu tượng Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 11hoặc nhấn Ctrl+Shift+F8 : Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 12Khi vào danh sách điểm dừng, chúng ta sẽ thấy: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 13Có hai điểm dừng đây:
  • Bee.java:24 - trong lớp Bee trên dòng 24
  • Main.java:14 - trong lớp Main ở dòng 14
Tôi muốn lưu ý rằng khi bạn sao chép một dự án, bạn sẽ không có các Điểm dừng này: bạn cần phải tự thiết lập chúng! Ngoài ra còn có phần Điểm dừng ngoại lệ Java . Một điều rất hữu ích. Khi sử dụng nó, bạn có thể thêm một điểm dừng ngầm để chương trình dừng trước khi đưa ra bất kỳ ngoại lệ hoặc một điểm cụ thể nào. Hãy thêm một điểm ngắt ngầm cho RuntimeException. Việc này được thực hiện dễ dàng: ở góc trên bên trái có dấu cộng “+”. Nhấp vào nó và chọn Điểm dừng ngoại lệ Java : Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 14Trong cửa sổ xuất hiện, viết tên của ngoại lệ cần thêm, chọn từ danh sách đề xuất và nhấp vào OK : Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 15Chúng ta kết thúc chương trình giáo dục này và chuyển sang phần thực hành.

Đi nào, hãy đột nhập vào thế giới gỡ lỗi hoang dã

Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 16Vì tôi là một người nuôi ong cha truyền con nối nên đối với phần trình bày gỡ lỗi, tôi đã tạo một dự án mô tả quá trình ong lấy mật hoa, chế biến mật hoa thành mật ong và lấy mật từ tổ ong. Dựa trên tài liệu của tệp README, nằm trong thư mục gốc của dự án, chúng tôi đọc được: hành vi dự kiến ​​- từ tất cả các loài hoa mà mật hoa được thu thập (dưới dạng giá trị kép ), một lượng mật ong sẽ được thu thập bằng một nửa mật hoa được thu thập. Dự án có các lớp sau:
  • Bee - một con ong thợ bình thường;
  • BeeQueen - ong chúa;
  • BeeHive - tổ ong;
  • HoneyPlant - cây mật ong từ đó lấy mật ong;
  • Chính - nơi public static void main()đặt phương thức bắt đầu dự án.
Nếu bạn chạy phương thức này main()thì không những không đếm được lượng mật ong mà còn xuất hiện lỗi... Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 17Bạn cần xem ở đó có sai sót gì. Từ dấu vết ngăn xếp ở góc dưới bên phải, chúng ta có thể thấy rằng trong HoneyPlant.java:20, một RuntimeException được đưa ra: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 18Đây chính xác là trường hợp của chúng ta: có một RuntimeException, hãy thêm tìm kiếm cho một ngoại lệ như vậy, như được mô tả ở trên và chạy main()phương thức đó trong chế độ kiểm tra sửa lỗi. Để thực hiện việc này, hãy nhấp vào mũi tên tam giác màu xanh lục trong Intellij IDEA trước phương thức main(): Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 19và chúng tôi sẽ nhận được chương trình đã dừng vào lúc này trước khi ngoại lệ với biểu tượng này được kích hoạt Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 20Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 21. Để có được thông tin đầy đủ, bạn cần xem trong phần Gỡ lỗi. Nó có Variables , hiển thị tất cả các biến có sẵn trong phần này của ứng dụng:
  • mật hoa = 1,0;
  • mật hoaCapacity = -1,0.
Ngoại lệ được đưa ra một cách công bằng, vì giá trị của lượng mật hoa có trong cây mật ong không thể âm. Nhưng tại sao điều này lại xảy ra? Rốt cuộc, có một kiểm tra xem nếu hết mật hoa thì giá trị 0 sẽ được trả về ở các dòng 15-17:
if ( nectar == 0 ) {
         return 0;
}
Nhưng điều đáng chú ý là nó đang kiểm tra sai biến... và đây là lỗi trong mã. Thay vì kiểm tra giá trị của mật hoa trong bông hoa nằm trong biến honeyCapacity , chương trình sẽ kiểm tra giá trị của mật hoa đi vào phương thức và là lượng mà chúng muốn lấy từ mật hoa. Đây rồi, lỗi đầu tiên! Do đó, chúng tôi đặt nó một cách chính xác và nhận được biểu thức:
if ( nectarCapacity == 0) {
         return 0;
}
Tiếp theo, chúng ta chạy main()phương thức ở chế độ bình thường (Run `Main.main()`)và không còn lỗi nữa, chương trình đã hoạt động: Ứng dụng hoạt động Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 22và đưa ra câu trả lời: “33.0 mật ong được tạo ra bởi 7 con ong từ 2 cây mật ong” Mọi thứ sẽ ổn, nhưng câu trả lời là sai rồi... Tất cả là do trong tài liệu tệp README có viết rằng mật hoa biến thành mật ong theo tỷ lệ 2 trên 1:
## Documentation
Presentation based on honey getting process.

**Note**: 1 honey point = 2 nectar points
Từ phương pháp chính, có thể thấy rằng có hai cây mật ong, lần lượt là 30 và 40 đơn vị mật hoa, vì vậy cuối cùng bạn sẽ nhận được 35 đơn vị mật ong. Và anh ấy viết rằng 33. Hai đơn vị còn lại đã đi đâu?... Bây giờ chúng ta sẽ tìm hiểu! Để làm điều này, chúng ta cần đặt một điểm ngắt trong phương thức Main.main()ở dòng số 28, nơi nó được thực thi beeHive.populateHoney()và chạy mainphương thức ở chế độ Gỡ lỗi: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 23Chúng ta hãy xem xét kỹ hơn điểm này. Chương trình dừng trước khi thực hiện dòng thứ 28. Ở phía dưới chúng ta thấy phần Gỡ lỗi, phần này mô tả tất cả thông tin về ứng dụng đang chạy. Phần Biến, như đã đề cập, chứa tất cả các biến và đối tượng có thể truy cập được từ phần này của ứng dụng. Phần Frames hiển thị các bước mà ứng dụng trải qua, bạn có thể xem lại bước trước đó và lấy toàn bộ dữ liệu cục bộ. Để chương trình tiếp tục hoạt động, bạn có thể nhấn F9 hoặc biểu tượng màu xanh lá cây, như hình bên dưới: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 24Để dừng chương trình, bạn cần nhấp vào hình vuông màu đỏ: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 25Để khởi động lại ứng dụng ở chế độ gỡ lỗi, bạn cần nhấp vào mũi tên: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 26Tiếp theo, để xem từng bước trong ứng dụng, bạn có thể sử dụng hai phím:
  • F8 - xem qua một phần mã và không đi sâu vào các phương thức nội bộ;
  • F7 - đi qua một phần mã và nhập các phương thức nội bộ.
Do đó, để đưa phương thức vào hoạt động beeHive.populateHoney(), chúng ta cần nhấn F7 và sẽ chuyển sang: Gỡ lỗi trong Intellij IDEA: hướng dẫn cho người mới bắt đầu - 27Tiếp theo, chúng ta chuyển qua chế độ gỡ lỗi bằng F8 bằng phương thức này cho đến hết và mô tả những gì xảy ra trong phương thức này:
  • Dòng 25 - Stream API được sử dụng để lấy mật từ tất cả các loài ong;
  • Dòng thứ 26 - mật ong được thêm vào dòng hiện có;
  • Dòng thứ 27 - 2 đơn vị mật ong được phân bổ cho nữ hoàng;
  • Dòng thứ 28 - hai đơn vị này được loại bỏ khỏi tổng lượng mật ong;
  • Dòng 29 - tử cung ăn mật ong này.
Đó là nơi hai đơn vị này đã đi, hoan hô! Sau khi trao đổi với nhà phân tích kinh doanh, chúng tôi đi đến kết luận rằng tệp README tài liệu có lỗi và cần được cập nhật. Hãy cập nhật tệp README:
## Documentation
Presentation based on honey getting process.

**Note**:
*  1 honey point = 2 nectar points
*  2 honey point queen bee eats every time when beehive populates the honey.
Và thế là xong: tất cả các lỗi được tìm thấy đã được sửa, chúng ta có thể bình tĩnh tiếp tục uống cà phê và đọc các bài viết trên trung tâm JavaRush một cách thông minh :)

Tóm tắt

Trong bài viết này chúng tôi đã tìm ra rằng:
  • không có công việc nào mà không có lỗi và việc gỡ lỗi là một cách tuyệt vời để giải quyết chúng;
  • điểm ngắt là gì và nó tồn tại ở dạng nào;
  • cách định cấu hình điểm dừng ngoại lệ;
  • Cách điều hướng trong chế độ gỡ lỗi.

Bài viết để đọc

Xem thêm các bài viết khác của tôi:
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION