글
자바에서 실행중에 발생할 수 있는 예외 상황 (쉽게 말하면 에러) 을 Exception 이라고 합니다. 특정 예외 상황이 되면, throw 키워드를 통해 상황에 맞는 예외를 발생시킵니다. 예외는 총 3 가지 종류가 있습니다.
Error
에러는, JVM 에서 주로 발생시키는 예외로, 치명적인 상황을 말합니다. 이는, 개발자가 대응할 수 있는 범위가 아니고 시스템 단에서 대응을 할 수 밖에 없습니다.
ex)
StackOverflowError : application 이 너무 깊어져서 stack 이 꽉 찬 경우 발생
ExceptionInitializerError : static 초기화 구문에서 잘못된 static 변수의 초기화시 Exception 이 발생하면 발생
RuntimeException
명시적으로 예외처리를 하지 않아도 되는 Exception 을 말합니다. 따로 예외처리 구문을 작성하지 않아도 컴파일 에러가 나지 않습니다.
ex)
IllegalStateException : 부적합한 경우에 메소드가 호출되면 발생
ArrayIndexOutOfBoundsException : 배열에 부적합한 위치에 접근할 때 발생
IllegalThreadStateException : 쓰레드에 메소드를 호출 요청하여 부적합한 상태를 만들때 발생
Non RuntimeException (RuntimeException 을 제외한 나머지 Exception 들)
이 Exception 들은 예외처리를 반드시 해야 합니다. try ~ catch ~ finally 로 직접 처리하거나, 혹은 throws 로 예외를 현재 메소드에서 회피해야 합니다. 예외처리 구문을 작성하지 않으면 컴파일 에러가 발생합니다.
만약, 한 메소드에 try ~ catch ~ finally 문과 throws 문이 둘 다 있다면, try ~ catch ~ finally 문이 실행됩니다.
(StackOverflowError 클래스 참고)
http://docs.oracle.com/javase/8/docs/api/java/lang/StackOverflowError.html
(IllegalStateException 클래스 참고)
http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html
(ExceptionInitializerError 클래스 참고)
http://docs.oracle.com/javase/8/docs/api/java/lang/ExceptionInInitializerError.html
(IllegalThreadStateException 클래스 참고)
http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalThreadStateException.html
(ArrayIndexOutOfBoundsException 클래스 참고)
http://docs.oracle.com/javase/8/docs/api/java/lang/ArrayIndexOutOfBoundsException.html
'4.1) OCJP > 관련 이론 및 문법' 카테고리의 다른 글
관련 이론 및 문법 - Garbage Collection (0) | 2015.07.30 |
---|---|
관련 이론 및 문법 - Generic (0) | 2015.07.29 |
관련 이론 및 문법 - import (0) | 2015.07.29 |
관련 이론 및 문법 - Arrays 클래스 (0) | 2015.07.28 |
관련 이론 및 문법 - javac (0) | 2015.07.28 |
관련 이론 및 문법 - PrintWriter 클래스 (0) | 2015.07.25 |
관련 이론 및 문법 - Comparable 인터페이스 (0) | 2015.07.24 |
관련 이론 및 문법 - File 클래스 (0) | 2015.07.24 |
관련 이론 및 문법 - 객체 직렬화 (Serialization) (0) | 2015.07.14 |
관련 이론 및 문법 - NumberFormat 클래스 (0) | 2015.07.14 |
RECENT COMMENT