2011-10-13 10 views
5

저는 Java 용 Java 응용 프로그램에서 작업 중이며 현재 디버거가 제 catch 블록으로 들어가고 어떻게 든 전이 null 인 문제가 발생하고 있습니까? 이런 식으로 본 사람 있어요?null 예외가 발생했습니다.

} 
catch(Exception ex) 
{ 
    // Debugger is coming through the catch block and ex is null ???? 
} 

답변

6

이것은 소스 코드처럼 들리지만 컴파일 된 클래스는 동기화되지 않으므로 디버거가 잘못된 블록으로 들어서고 있습니다.

깨끗한 다음 다시 작성하십시오.

+0

프로젝트를 지우고 다시 빌드 한 것으로 보입니다. 감사! –

1

예외는 해당 블록에서 절대로 null이 될 수 없습니다. 디버거의 명령 포인터가 catch 행을 가리키는 경우 예외를 액세스 할 수있게하려면 한 줄을 더 추가해야합니다. catch 블록에 코드 행 (잠재적으로 로그 호출)을 추가하고 이전 코드를 catch하는 중단 점을 넣을 수 있습니다.

+0

그래도'throw null; '시도를했지만 인스턴스'NullPointerException '이 발견되었습니다. –

+0

귀하의 질문에 대답했다는 말을하는 경우 귀하의 문제를 해결했다는 내 대답 옆의 확인란을 클릭하십시오. –

+0

나는 질문을 한 사람이 아니기 때문에 그렇게 할 수 없다. –

0

일부 로그 문을 추가하고 확인하십시오. ex이 (가) 범위를 벗어났습니다.

+0

David Carpenter는 "// 디버거가 catch 블록을 지나고 ex는 null ????"이라고 말합니다. 따라서 "ex"가 범위 내에 있습니다. – hasanghaforian

0

실제 장치 (Galaxy Tab 2)에서 디버깅하는 동안 AsyncTask 내부에서 똑같은 문제가 발생했습니다. 그래서 나는 또한이 이상한 문제가 실제로 있다는 것을 확인할 수 있습니다.

나를 위해 허용 된 대답이 도움이되지 않았습니다.

내 경우에는 장치의 USB 플러그를 뽑은 다음 나중에 다시 연결하면 (그리고 내 응용 프로그램을 다시 실행 한 후) 문제가 신비하게 사라졌습니다.

관련 문제