내가 개발 한 소프트웨어 중 하나에서 예외 메커니즘을 관리하려고합니다.java.lang.exception.getCause()가 매번 null이됩니다.
프로그램의 어느 곳에서 나는 다음과 같이합니다.
IF(my condition not allowed){
throw new Exception("My condition not allowed", null)
}
이는 프로그램 오류와 관련이없는 것으로 이해하려면 java.lang.exception 매개 변수로 null을 반환합니다. (난 내 자신의 사용자 정의 예외를 만들 수있는 기회가 없어, 고려해보십시오)
그리고 어딘가에 프로그래밍 예외가 이런 식으로 잡을;
}catch(Exception e){
if(null == e.getCause)
do.somethingThatIWantToCatch();
}else{
do.somethingProgramaticalError();
}
여기서 문제는; 내 코드는 NullPointerException, ArrayIndexOutOfBoundsException 등등 같이 알 수없는 다른 것을 던질 수 있습니다 ...
이 시점에서 나는 programatic 오류가 발생하면 e.getCause()가 null이 아니어야한다고 생각하지만이 모든 것은 NULL이됩니다. 시간과 나는 do.somethingThatIWantToCatch(); 항상 상태.
이 상황을 어떻게 처리하고 do.somethingProgramaticalError()를 실행할 수 있습니까? 조건 ??? 사전
설명서를 읽으십시오. 'getCause()'는 보통 null입니다. 자신 만의 예외를 만들어야합니다. – SLaks
이것은 예외 시스템의 엄청난 오용입니다. 자신의 예외를 잡으려면 * 자신의 예외를 throw하십시오. 파생 예외 클래스 또는 여러 클래스를 만듭니다. – EJP
알려 주셔서 감사합니다. 그러나 예외를 처리하는 적절한 방법이 아니라는 것을 이미 알고 있습니다. 은행의 엄격한 인프라에서 작업하는 한 내 맞춤 예외를 만들지 않습니다. 이것이 내가 해결 방법을 찾고있는 이유입니다. 나는 이것을 사용하는 것이 적절한 지 아닌지에 대한 지식이 아니라 이것을 해결할 필요가있다. 감사 :) – BurakT