IntelliJ에“예외 중단”이 있습니까?


318

첫 번째 예외 발생시 디버깅을 자동으로 중단하는 기능이 있습니까?

그래서 우리는

  1. 신청 시작
  2. 예외를 던지는 일을하다
  3. 예외가 발생한 곳에서 IntelliJ가 강조 표시됩니다.

잡히지 않은 예외에 대해서만 깨고 싶습니까?
— David Ferenczy Rogožan

답변:



158

대화 상자를 빠르게 여는 방법은 Ctrl+ SHIFT+ F8(Mac : Cmd+ SHIFT+ F8)를 누른 다음 예외 중단 점 탭을 클릭하는 것입니다. 이것이 마지막으로 본 탭인 경우에도 여전히 선택되어 예외를 설정하거나 해제 할 때 쉽게 넘길 수 있습니다.

이로 인해 예외가 발생한 코드 (또는 라이브러리 코드)에서 IntelliJ가 중단됩니다. 특히 예외 처리에서 스택이 실행되기 전에 catch / finally 블록을 찾기 전에 '첫 번째 기회'를 얻습니다.


팁 : Java는 클래스를로드 할 때 내부적으로 많은 예외를 발생시키는 경향이 있으므로 모든 예외를 위반하면 상당히 지루할 수 있습니다. 좋은 소식은 조건 필드를 사용하여 특정 유형의 예외를 제외 할 수 있다는 것 입니다.

예를 들면 다음과 같습니다.

!(this instanceof java.lang.ClassNotFoundException)

와 같은 여러 조건을 함께 연결할 수 있습니다 &&.

여기에 이미지 설명을 입력하십시오


9
"Java 시스템이 아닌 내 프로젝트에서만 예외 발생"을 알리는 방법이 있습니까?
— Damn Vegetables

16
"선택된 중단 점에 도달 할 때까지 사용 안함 :"를 잊지 마십시오. 모든 Java 또는 기타 라이브러리를로드하고 설정 한 후에 코드에 중단 점을 설정 하십시오 . 그런 다음 드롭 다운에서 중단 점을 선택하고 기다리십시오. 중단 점에 도달 한 다음 계속 진행하면 새로운 Caught & Uncaught Exception 필터가 시작됩니다. :)
— Louis St-Amour

1
Breakpoints 대화 상자의 맨 아래에있는 "Catch exception"과 "Catch 예외"를 모두 확인하는 것을 잊지 마십시오.
— Robino

59

에서 하게 IntelliJ IDEA (14)는 다음으로 이동 :

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

선택을 취소하지 않으면 내부 예외가 발생할 Caught Exceptions때마다 실행이 중지됩니다 Java Framework.


1
실행-> 중단 점보기 ...-> "Java 예외 중단 점 점검"-> "
— Jonas

2
불행히도, 이것은 "catch exceptions"를 비활성화 한 후에도 여전히 나를 위해 잡힌 예외가 발생합니다.
— Carcigenicate

이것은 내가 말하고자하는 매우 중요한 정보입니다. 그렇지 않으면 정보 가치가없는 예외적 인 지옥입니다. 주로 Grails와 같은 큰 프레임 워크를 사용할 때.
— David Ferenczy Rogožan

일반적으로 일반적인 웹 응용 프로그램에서는 모든 예외가 포착되는 데 사용되며 모든 것을 포착하고 형식을 지정하는 최상위 catch 블록이 있기 때문에 예외가 발생했는지 여부와 상관없이 두 가지 옵션이 모두 나쁩니다. 사용자에게 제시. 따라서 예외가 발견되지 않으면 아무것도 요청하지 않으며 단일 요청 동안 수백 번 중단됩니다. 둘 다 쓸모없는 :(
— David Ferenczy Rogožan

당신이 그것을 사용하는 방법을 알고 있다면 아무것도 쓸모가 없습니다.
— Alessandro Flati

12

그렇습니다. IntelliJ IDEA의 중단 점 대화 상자에서 예외 중단 점 ( "예외"일 수 있음)을 정의해야합니다.

원하는 경우 조건 또는 클래스 또는 예외 또는 미 발견 예외에 관심이 있는지 여부를 기준으로 예외를 필터링 할 수 있습니다.


7

왼쪽 상단의 작은 "+"기호를 클릭하면 새 중단 점을 추가 할 수 있습니다. 예외 중단 점을 선택하면 예외 클래스를 입력하여 중단 할 수있는 대화 상자가 나타납니다 (모든 예외를 중단하지 않으려는 경우).


0

intellij의 최신 버전에서 실행 > 중단 점보기 아래에 있습니다.

그런 다음 Java 예외 중단 점 -> 모든 예외를 확인하십시오 .

예외를 디버깅하는 좋은 방법은 기본 앱 패키지와 와일드 카드를 사용하는 것 .*입니다. 이 방법으로 다른 모든 라이브러리 예외를 건너 뜁니다. 대부분의 경우 다른 라이브러리가 아닌 앱에서 예외를 찾고 있기 때문에 (많은 예외가 될 수 있음).

예를 들어 이미지에 표시된 것처럼 com.gs.mercury.*앱에서 예외가 발생할 때마다 중단 하는 데 사용 합니다. 예외 상황을 처리하고 (예외 상황을 처리하고 정상적인 상황의 흐름을 처리하지 않기 위해) 예외를 사용하는 경우 거의 항상 원하는 예외에 도달 할 때만 중지됩니다.

PD. 꽤 유용한 Catch 클래스 필터 를 지적하기 위해 대답이 추가되었습니다 .

중단 점

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.