안녕하세요.
이번 포스팅에서는 예외전가(Exception Throws)에 대해 알아보겠습니다.
예외전가는 각 책별로 다른 말로 표현하는데
예외 던지기, 예외 떠넘기기 등 다양한 이름으로 표현할 수 있습니다.
예외전가는
말 그대로 예외 처리의 책임을 메서드를 호출한 곳으로 넘기는 것
을 말하며
사용 방법은
메소드 정의 뒤에, throws를 작성하고 예외 클래스를 나열하면 됩니다.
접근지정자 반환타입 메소드명(매개변수...) throws 예외클래스1, 예외클래스2 {
...
}
이렇게 사용되게 되며
예제를 보도록 하겠습니다.
이 예제를 예로 들면
한자리 수 정수를 입력받아
그 값을 ASCII로 반환받아 48을 빼서 한자리 수를
그대로 출력하는 프로그램입니다
이렇게 사용할 경우 System.in.read()에 빨간 에러가 발생한 것을 볼 수 있는데
마우스를 올려보도록 하겠습니다.
처리되지 않은 예외 유형 IOException이라고 예외가 발생하는 것을 볼 수 있습니다.
이때 두 가지 해결책이 있는데 이 구문을 try ~ catch 문으로 묶는 방법
또 하나는 add throws declaration 즉 예외 전가 처리를 하는 방법이 있습니다.
저 부분에서 에러가 발생하는 이유는
System.in.read() 메서드가 실행되는 동안 어떤 형태의 입력/출력 오류가 발생하는 경우
메소드가 실행되는 동안 스트림이 끝나거나 종료되는 경우에 발생하므로
컴파일 시 자동으로 빨간 오류를 띄워줌으로써 실행을 방지하고 있습니다.
이제 add throws declaration 또는 직접 작성하여 예외 전가를 해보도록 하겠습니다.
그럼 IOException이 import 도심가 동시에 main 메서드 옆에
throws IOException 이 붙은 걸 알 수 있습니다.
이 경우 예외가 발생하게 되면
IOException으로 예외처리를 보내게 되며
그렇지 않을 경우 정상적으로 프로그램이 실행되게 됩니다.
결괏값을 보도록 하겠습니다.
정상적으로 실행되는 것을 볼 수 있습니다.
이 외에도 파일 입출력 관련된 객체를 사용할 때 발생하기도 하며
예외전가를 사용하는 이유는 코드의 가독성
적절한 예외처리
재사용성용이를
위하여 예외 전가를 사용하게 됩니다.
이렇게 간단하게 예외전가에 대해 알아봤는데
이해가 좀 되시나요?
이해가 되지 않는 부분은 댓글을
남겨주시면 답변 달아 드리도록 하겠습니다.
다음 포스팅은 예외 강제발생과 사용자 정의 예외 클래스
두 가지를 묶어서 보도록 하겠습니다.
감사합니다 :)

'개발언어 > JAVA' 카테고리의 다른 글
Java 개발을 위한 패키지(Pakage) (0) | 2023.09.17 |
---|---|
Java 개발을 위한 예외 강제발생과 사용자 정의 예외 클래스 (0) | 2023.09.17 |
Java 개발을 위한 Exception AutoClose(try-with-resources) (0) | 2023.09.17 |
Java 개발을 위한 다중Catch 멀티Catch 예외처리(Exception) (0) | 2023.09.17 |
Java 개발을 위한 TryCatch 예외처리(Exception Handling) (0) | 2023.09.17 |