예외처리 : throws 선언
- 예외를 발생시키는 코드를 사용할 때 당장 예외 처리를 하고 싶지 않다면,
메서드 선언부에 그 예외 정보를 적시하면 된다.
그러면 그 메서드를 호출하는 쪽에서 처리할 것이다.
- 즉 해당 메서드에서 어떤 예외가 발생하는지 알리는 것이 목적이다.
throws 예외처리 예제 I
}
* 참고
- throws 는 메서드 선언부에 '단수 or 복수 개'의 예외를 던지며
main()에 써서 예외가 발생했을 경우, 바로 선언부로 돌아가 예외처리를 하고
프로그램은 종료된다.
- throw는 예외가 발생했을 때, 하나의 예외 인스턴스를 던질 때 사용한다.
** 참고 - 다음 예제
- java.lang.RuntimeException 계열의 예외가 발생할 때는
예외를 처리하는 것이 선택사항이다.
컴파일러가 강제로 요구하지 않는다.
=> 예외를 처리하는 try ~ catch ~ 을 사용하지 않아도 되고,
메서드 선언 부에 throws를 적시하지 않아도 된다.
- 이유 :
스텔스 모드로 예외를 전달하기 위해 특별히 정한 규칙이다.
throws 예외처리 예제 II - 스텔스 모드
*** 참고
예외를 발생시키는 메서드를 사용한다면 반드시 둘 중 하나는 해야 한다.
1) try ~ catch ~ 로 예외를 정확히 처리하거나,
2) 이 메서드 안에서 예외가 발생한다고 메서드 '선언부'에 적시하거나.
스텔스 모드를 사용하는 이유는 예외가 발생하더라도, 상위 메서드까지 조용히
던지기 위함이다. 그렇다고 하더라도 예외는 최소한 main()에서는 개발자가 처리해야
한다. 만약 main()에서까지 예외가 처리되지 않는다면 예외 발생시 JVM에까지 전달될
것이고 그 결과 프로그램이 종료될 것이다.
'Programming > java' 카테고리의 다른 글
[Java] 데이터 프로세싱 스트림 클래스 (data processing stream) 클래스 - bufferedInputStream (0) | 2017.05.22 |
---|---|
[Java] 파일 입출력 Binary File I/O - 바이너리 스트림 클래스 (0) | 2017.05.19 |
[Java] (5) 예외처리 (exception) - 사용자 정의 예외 던지기 (0) | 2017.05.18 |
[Java] (4) 예외처리 (exception) - catch (0) | 2017.05.18 |
[Java] (3) 예외처리 (exception) - throw 명령 (0) | 2017.05.18 |