Exception
- 직접처리 방식과 간접처리 방식으로 지원
- 직접처리 연관 키워드 : try, catch, finally
- 간접처리 연관 키워드 : throws
- 자바에서 발생하는 예외들은 클래스로 정의되어 있음
- 상속관계
Object
|
Throwable (예외관련 클래스의 최상위 부모)
|
---------------------
| |
Exception Error (프로그램에서 처리가 불가능한 부분)
| (ex. vm error...)
| (RuntimeException : 실행시 발생)
| (Runtime 이외 : 컴파일시 발생)
-------------------------
| |
FileNotFoundException RuntimeException (=unchecked : 선택적예외처리)
IOException ...
...
- Runtime 관련 예외들은 예외 처리가 필수가 아님, unchecked exception
- Runtime 이외의 예외들은 반드시 예외처리가 되어야 한다, checked exception
- 사용자가 예외를 직접 정의(예외 관련 클래스를 상속)
- 사용자 예외 정의와 함께 많이 사용하는 키워드 : throw(강제로 예외 발생)
소스
public static void main(String[] args) {
System.out.println(1);
try {
System.out.println(2);
String s = null;
System.out.println(s.length());
System.out.println(3);
}
catch (Exception e) {
System.out.println(4);
//return; // 메서드를 종료 1-2-4-5
System.exit(0); // 즉시 프로그램 종료 1-2-4
}
finally {
System.out.println(5); // 무조건 실행. return보다 우선순위가 높다
}
System.out.println(6);
}
결과
1
2
4
Java - Wrapper 클래스 (0) | 2018.09.28 |
---|---|
Java - 예외의 직접처리 + 간접처리 : throws + throw (0) | 2018.09.28 |
Java - final (0) | 2018.09.28 |
Java - 인터페이스 (0) | 2018.09.28 |
Java - 추상 클래스 (0) | 2018.09.28 |
댓글 영역