2010-03-18 2 views
19

예외가 발생한 지점에서 중지하도록 Eclipse를 설정하려면 어떻게해야합니까?예외가 발생한 행에서 중지하도록 Eclipse를 설정하려면 어떻게해야합니까?

Eclipse 브레이크 포인트 설정에서 예외가 발생했습니다. 아래의 코드 예에서 Eclipse는 Integer 소스 코드를 열려고합니다. 내 코드 예제에 표시된 시점에서 디버거를 중단시킬 수있는 방법이 있습니까? 스택 트레이스를 아래로 내려 가면이 줄로 갈 것입니다. "Source not found"창이 나타나지 않으면이 방법을 사용할 수 있습니다.

Visual Studio에서이 작업을 수행 할 수 있기 때문에 Eclipse에서이 작업을 수행 할 수있는 방법을 찾지 못할 수 있습니다.

package com.test; 

public class QuickTest 
{ 
    public static void main(String[] args) 
    { 
    try 
    { 
     test(); 
    } 
    catch(NumberFormatException e) 
    { 
     System.out.println(e.getMessage()); 
    } 
} 

    private static void test() 
    { 
    String str = "notAnumber"; 

    Integer.parseInt(str);//<----I want debugger to stop here 
    } 
} 

 

답변

3
  1. 당신은 단지 Integer.parseInt(str) 줄에 중단 점을 설정할 수 없습니다?
  2. JRE 대신 JDK를 사용하여 Eclipse 프로젝트를 가리키면 모든 플랫폼 클래스 (Integer 등)의 소스 코드를 선택해야한다.
+1

저는 Integer 클래스를 열지 않으려 고합니다. 난 그냥 내 코드로 문제를 깰 싶어요. 중단 점 설정은 간단한 예제 일 뿐이므로 도움이되지 않습니다. 실제 코드에는 수백 개의 클래스가 있습니다. – Crispy

+1

아마도 'JVM'대신에 'JDK'라고 할 것입니다. – Fortega

+0

@Fortega, 예, 감사합니다. –

5

환경 설정 -> 자바 -> 디버그 -> 단계 필터링 디버깅에 (java.*, sun.*, etc) 확실 화살표를 필터링 작은 단계가 선택되어 있는지 확인 디버깅 할 때 필터링 할 패키지를 선택 .

트릭을 수행해야합니다.

+0

멋지다! 나는 항상 이것을하는 방법을 알고 싶었다! – charlie

+1

중단 점이 예외로 설정 될 때 작동하지 않는 것처럼 보입니다. ( – Crispy

+0

단계 반환, 단계 넘기 또는 그 지점에서 프레임 놓기는 어떻습니까? 작동 여부는 확실하지 않지만 총입니다. –

2

디버그보기는 현재 실행의 전체 스택을 보여줍니다. 보려는 라인을 선택해야합니다. 당신이 거기에 중단 점했다 그것은 당신이 모든 변수 등 내가 거기에 도착하는 방법을 다른 모르겠어요

35

을 볼 수 있습니다, 동일합니다,하지만 난 그냥 할 : 해당 탭에

Window -> Show View -> Breakpoints 

을 그리고 "J!" 예외에 대한 중단 점을 설정할 수 있습니다.

+0

예를 들어 제가 사용하는 것입니다. Integer 소스 코드를 열지 않으려 고합니다. 디버거가 'Integer.parseInt (str);'에서 멈추길 원합니다. – Crispy

+2

예외가 발생하면 디버거가 멈 춥니 다. 이것은 당신이 요구 한 것입니다.) 그리고 예외를 던진 소스 라인 (이 경우 Integer.parseInt())에서 항상 편집기를 열 것입니다. 전체 호출 스택도 표시되며 해당 레벨을 클릭하여 해당 레벨의 소스를 볼 수 있습니다. – DJClayworth

+0

그런 다음 콜 스택을 사용하여 자신의 코드로 돌아갈 수 있습니다. 실제로 스택의 어떤 레벨을 흥미로울 것인지 결정하는 실제 방법은 없습니다. 이 대답을 정말로 받아 들여야합니다. – David

관련 문제