2011-11-22 2 views
2

자바 프로젝트가 있는데 RuntimeException이 발생할 수있는 소스 코드의 위치 목록을 원합니다. 어떤 도구 또는 Eclipse 플러그인이 있나요?RuntimeException이 발생할 수있는 Java 프로젝트의 모든 위치를 찾는 방법은 무엇입니까?

FindBugs 또는 PMD를 사용하면 NullPointerExceptions이있을 수 있지만 다른 항목도 찾아야합니다.

+1

RuntimeException은 "거의 모든 곳"에 발생할 수 있습니다. 너 뭐하려고? (javadoc에서 : "RuntimeException은 Java Virtual Machine의 정상적인 작동 중에 _ 발생할 수있는 예외의 수퍼 클래스입니다." – Mat

답변

2

NullPointerException, ClassCastException 및 ArithmeticException은 명시 적으로 throw 할 필요가 없으므로 특별한 경우입니다. 그러나 다른 모든 것은 명시 적으로 던져 져야합니다.

NullPointerException의 가능한 원인을 찾는 것은 일반적인 버그로 유용하지만 모든 RuntimeException과 마찬가지로 처리하는 것이 가장 바람직합니다. 가능한 모든 원인을 검색하면 매우 유용 할 가능성이 큰 매우 큰 결과를 얻을 수 있습니다. (나는이 운동을 직접 해왔으며 많은 작업을 통해 많은 IMHO를 달성하지 못했습니다.)

가능한 모든 상황을 유발할 수있는 좋은 테스트 케이스를 확보하려면 코드 범위를 사용하고 엣지 케이스 값을 사용하는 것이 좋습니다 예외 대신.

+0

'IMHO'의 약자는 무엇입니까? –

+0

나의 겸허 한 의견에. –

+0

@downvoter, 아래로 투표하는 이유가 무엇인가요? –

0

자신의 코드 만 확인하는 경우 Checkstyle을 사용하면됩니다. Coding Problems, Illegal Throws 수표를 확인하십시오.

예외 수를 지정할 수 있으며 기본값은 java.lang.Throwable, java.lang.Error, java.lang.RuntimeException입니다.

참고 : 위 예외의 하위 클래스는 선택되지 않으며 클래스 자체 만 선택합니다. 또한 액세스 권한이없는 소스 코드를 확인하지 않기 때문에 런타임 라이브러리가 검사되지 않습니다.

+1

RuntimeException을 트리거 할 수있는 라이브러리/JRE에 대한 호출을 선택하지 않을 것이라고 생각합니다. –

+0

@PeterLawrey 당신 말이 맞아요,이 예외의 하위 클래스를 선택하지는 않지만, 명시 적으로 RuntimeException()을 던졌습니다. ... 명확한 답변. –

+0

하지만'RuntimeException'을 소스 코드에 명시 적으로 던지지 않았습니다. 이 경우 Checkstyle이 작동합니까? – chance

0

다른 답변에 동의합니다. 달성하고자하는 것이 무엇인지 모르겠으므로 질문에 대한보다 직접적인 답변을 제공하고 싶습니다.

불행히도이 작업을 수행하는 도구는 없습니다. 죄송합니다. 그것이 당신에게 얼마나 중요한지에 따라, 스스로 일을 할 수 있습니다.

코드를 '손으로'확인하십시오.

그런 다음 JDK가 남아 있습니다 (그리고 대부분 사용중인 일부 libs). Oracle에서 JDK 소스 코드를 다운로드 할 수 있습니다. 새로 작성된 예외 인스턴스의 발생에 대한 전체 텍스트 검색을 다시 수행 할 수 있습니다. 그러나이 지루한 작업조차도 일부 방법이 없기 때문에 가능한 모든 소스를 제공하지는 않습니다.

+0

별로 중요하지 않습니다.쉬운 방법은 내 코드를 '손으로'확인하는 것입니다. – chance

관련 문제