본문 바로가기



프로그래밍/JAVA

[JAVA] No exception of type NumberFormatException can be thrown; an exception type must be a subclass of Throwable

 

강좌를 수강하다보니 예외처리할때 catch 쪽에 분명 오류코드를 넣었는데 실행되지 않고, 구문 에러가 계속 나오는경우로

해당 코드실행시 나오는 에러문구는 "No exception of type NumberFormatException can be thrown; an exception type must be a subclass of Throwable" 였는데, 내용상으로는 해당 에러는 처리 할 수 없다는 것이였다. 뒷줄에 있는 내용은 서브클래스에 처리가능한 타입이어야 한다는 내용인데 이말인 즉슨, 자바 클래스에 해당 에러처리하는 클래스가 없다는 이야기다. 

곰곰이 생각해보면 이상하지 않은가? 자바에서 나오는 에러메시지인데 자바 기본 클래스에 없다니... 그래서 고심끝에 알아낸것은 파일이름이 해당 에러와 같은 이름(이 경우에는 내가 작성한 클래스 파일이름이  NumberFormatException.class인것이다.)이면 이 사단이 나는 것이다.  당연히 자바는 모든것을 클래스로 처리하니까 같은 이름이 두개 있어서 꼬인거다.

해결방법 :현재 실행( main 메소드가 들어있는)  클래스 파일이름을 오류 이름이 아닌것으로 바꾸면 된다.
항상 파일 이름은 기본 lang이나, java.util 클래스에 있는 이름으로 쓰지말자.