Error
[Error] unreported exception IOException; must be caught or declared to be thrown
Wonol
2022. 8. 14. 11:55
반응형
개발을 완료하고 컴파일을 하던 도중 아래와 같은 에러 메시지가 나오면서 컴파일이 되지 못하였다.
error: unreported exception IOException; must be caught or declared to be thrown throw new IOException("IOException 발생");
간단하게 나마 번역해보면, throw new IOException 은 보고되지 않은 예외 이다.
해결하기 위해 실제 개발 코드는 아니지만 간단하게 예제를 통해 정리하고자 한다.
1. 에러 발생 원인
public void test(){
String text = "";
if(text == null || text.isEmpty()) {
throw new IOException("IOException 발생");
}
}
- Java(자바)에서는 예외 중 어떤 예외에 대해서는 개발자가 해당 예외를 처리하도록 강요하고 있습니다.
- 대표적으로 IOException 이 있고, 간단하게나마 위 코드와 같은 경우입니다.(NPE는 아닙니다.)
- 여기를 통해 IOException 은 개발자가 처리가 필요하고, NPE 는 개발자가 처리 안해도 되는지 참고하시면 됩니다.
2. 해결
- 해결 방법으로는 try-catch 문 또는 throws 하여 메서드 선언부에 던지는 방법이 있습니다.
2-1. try-catch
public void test(){
String text = "";
if(text == null || text.isEmpty()) {
try {
throw new IOException("IOException 발생");
} catch (IOException e) {
// 에러 처리
System.err.println("여기서 에러 처리");
}
}
}
2-2. throws
public void test() throws IOException {
String text = "";
if(text == null || text.isEmpty()) {
throw new IOException("IOException 발생");
}
}
3. 번외
- 물론 최근에는 대부분 인텔리제이를 통해서 개발을 하다 보니, 컴파일 이전에 이러한 상황이 있을 경우 빨간 물결(~)로 안내해주고 있고, 해당 부분에 마우스를 옮기면 해결 내용이 나오면서 수정할 수 있습니다.
참고
반응형