JaeWon's Devlog
article thumbnail
반응형

개발을 완료하고 컴파일을 하던 도중 아래와 같은 에러 메시지가 나오면서 컴파일이 되지 못하였다.

error: unreported exception IOException; must be caught or declared to be thrown throw new IOException("IOException 발생");

간단하게 나마 번역해보면, throw new IOException 은 보고되지 않은 예외 이다.

해결하기 위해 실제 개발 코드는 아니지만 간단하게 예제를 통해 정리하고자 한다.


1. 1. 에러 발생 원인

<java />
public void test(){ String text = ""; if(text == null || text.isEmpty()) { throw new IOException("IOException 발생"); } }

- Java(자바)에서는 예외 중 어떤 예외에 대해서는 개발자가 해당 예외를 처리하도록 강요하고 있습니다. 

- 대표적으로 IOException 이 있고, 간단하게나마 위 코드와 같은 경우입니다.(NPE는 아닙니다.)

- 여기 를 통해 IOException 은 개발자가 처리가 필요하고, NPE 는 개발자가 처리 안해도 되는지 참고하시면 됩니다.

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io

2. 2. 해결

- 해결 방법으로는 try-catch 문 또는 throws 하여 메서드 선언부에 던지는 방법이 있습니다.

2.1. 2-1. try-catch

<java />
public void test(){ String text = ""; if(text == null || text.isEmpty()) { try { throw new IOException("IOException 발생"); } catch (IOException e) { // 에러 처리 System.err.println("여기서 에러 처리"); } } }

2.2. 2-2. throws

<java />
public void test() throws IOException { String text = ""; if(text == null || text.isEmpty()) { throw new IOException("IOException 발생"); } }

3. 3. 번외

- 물론 최근에는 대부분 인텔리제이를 통해서 개발을 하다 보니, 컴파일 이전에 이러한 상황이 있을 경우 빨간 물결(~)로 안내해주고 있고, 해당 부분에 마우스를 옮기면 해결 내용이 나오면서 수정할 수 있습니다.


참고

- https://edu.goorm.io/learn/lecture/41/%EB%B0%94%EB%A1%9C%EC%8B%A4%EC%8A%B5-%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-%EC%9E%90%EB%B0%94-java/lesson/39411/%EC%98%88%EC%99%B8%EC%9D%98-%EC%84%A0%EC%A1%B0-throwable

- https://imasoftwareengineer.tistory.com/89

반응형
profile

JaeWon's Devlog

@Wonol

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!