자바의 핵심적인 예외처리 방법인 try-catch 문과 예외 전가에 대해 이해하고 설명할 수 있다.
Exception Handling
GOALS:
프로그래밍에서 예외 처리가 무엇인지 이해할 수 있다.
컴파일 에러와 런타임 에러의 차이를 이해하고 설명할 수 있다.
자바 예외 클래스의 상속 계층도를 통해 클래스 간 관계를 이해할 수 있다.
자바의 핵심적인 예외처리 방법인 try-catch 문과 예외 전가에 대해 이해하고 설명할 수 있다.
throws 키워드와 throw 키워드의 차이에 대해 설명할 수 있다.
사실 프로그래밍에서 제일 중요한 것이 예외처리이다.
자바에서의 exception handling은 예상 가능한 예외를 처리하는 것이다.
예를 들어 사용자의 입력 예외, 인덱스 초과, 존재하지 않는 파일 찾기 등등이 있다.
그래서 자바에서는 컴파일러가 예외 처리를 권장하는 경우가 있고, 없는 부분이 있다.
이제 자바에서의 예외 처리를 보도록 해보자.
이렇게 구성된다. 이제 이 코드를 예제 코드로 구현해보자.
// 출력값
[소문자 알파벳을 대문자로 출력하는 프로그램]
NullPointerException 발생!
e.getMessage: null
e.toString: java.lang.NullPointerException
[프로그램 종료]
java.lang.NullPointerException
at RuntimeExceptionTest.printMyName(RuntimeExceptionTest.java:20)
at RuntimeExceptionTest.main(RuntimeExceptionTest.java:7)
위의 코드에서 NullPointerException e, ArithmeticException e 의 정해진 키워드로 예외를 던질 수 있지만
우리가 예외를 method로 정의해서 던져줘서 처리할 수도 있다.
예를 들어,
이렇게 따로 method에 정의해서 예외를 받아 처리할 수 있고,
정의를 하지 않고 아래와 같이 try - catch 안에서 처리할 수도 있다.