2009-06-01 33 views
236

Có tính năng nào sẽ tự động ngắt lỗi khi xảy ra ngoại lệ đầu tiên không?Có "Break on Exception" trong IntelliJ không?

Vì vậy, chúng tôi

  1. ứng dụng bắt đầu
  2. làm một cái gì đó ném ngoại lệ
  3. có IntelliJ hiện lên dòng được đánh dấu nơi ngoại lệ xảy ra.

Trả lời

279

Chạy | Xem điểm ngắt | Điểm ngắt ngoại lệ

12

Có, có. Bạn cần xác định điểm ngắt ngoại lệ (có thể là "Ngoại lệ bất kỳ") trong hộp thoại điểm ngắt trong IntelliJ IDEA.

Các ngoại lệ có thể được lọc theo điều kiện hoặc lớp học nếu muốn hoặc bằng cách bạn quan tâm đến ngoại lệ bị bắt hoặc không bị bắt.

118

Một cách nhanh chóng để bật lên hộp thoại là để nhấn Ctrl + SHIFT + F8 (Trên Mac: Cmd + SHIFT + F8), sau đó nhấp qua các breakpoint ngoại lệ chuyển hướng. Nếu đó là tab cuối cùng bạn đang xem, nó vẫn sẽ được chọn, làm cho nó dễ dàng flick vi phạm về ngoại lệ và tắt.

Điều này sẽ khiến IntelliJ bị hỏng tại điểm trong mã (hoặc mã thư viện), nơi ngoại lệ được nêu ra. Cụ thể, bạn sẽ có được 'cơ hội đầu tiên' khi xử lý ngoại lệ, trước khi ngăn xếp được đi tìm kiếm các khối catch/finally để thực hiện.


MIPO: Java có xu hướng ném rất nhiều ngoại lệ trong nội bộ khi tải lớp học, do đó, việc phá vỡ tất cả các ngoại lệ này có thể trở nên khá tẻ nhạt. Tin vui là bạn có thể loại trừ một số loại ngoại lệ nhất định sử dụng trường điều kiện.

Ví dụ:

!(this instanceof java.lang.ClassNotFoundException) 

Bạn có thể chuỗi nhiều điều kiện như vậy cùng với &&.

enter image description here

+0

Khi ngoại lệ xảy ra, IDEA làm nổi bật không đúng dòng - tôi có thể làm gì? –

+1

@VitalyZdanevich, tôi không biết. Bạn nên hỏi một câu hỏi mới. –

+0

@VitalyZdanevich, biên dịch lại chương trình. các tệp gỡ lỗi có lẽ đã lỗi thời –

4

Nếu bạn click vào chút dấu "+" ở góc trên bên trái, bạn có thể thêm một breakpoint mới. Nếu bạn chọn Exception Breakpoint, bạn sẽ nhận được một hộp thoại nhỏ, nơi bạn có thể nhập vào lớp ngoại lệ để ngắt (trong trường hợp bạn không muốn phá vỡ tất cả các ngoại lệ).

40

Trong IntelliJ IDEA 14 đi:

Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"

Nếu bạn không bỏ chọn Caught Exceptions việc thực hiện sẽ được dừng lại mỗi khi Java Framework ném một ngoại lệ nội bộ.

+1

Chạy -> Xem điểm ngắt ... -> Kiểm tra "Điểm dừng ngoại lệ Java" -> Bỏ chọn "Ngừng ngoại lệ" – Jonas

+2

Thật không may, điều này vẫn vi phạm các ngoại lệ bắt được đối với tôi, ngay cả sau khi vô hiệu hóa "ngoại lệ bị bắt". – Carcigenicate

+1

Bỏ chọn 'Bắt ​​ngoại lệ' chính xác là những gì tôi đang tìm kiếm! Làm thế nào là điều này không upvoted nhiều hơn nữa! – Dylanthepiguy