1. Java의 특징
Java에서는 JVM을 통해 프로그램 실행 중(런타임)에 예외상황(Exception)이 발생할 경우 프로그램의 정상적인 실행과정과 분리하여 처리할 수 있다.
2. 오류(Error)
java.lang.Error 클래스의 서브클래스들로 시스템에 뭔가 비정상적인 상황이 발생했을 경우에 사용된다.
이런 에러에 대한 예외처리는 신경쓰지 않아도 된다. OutofMemoryError나 ThreadDeath 같은 에러는 catch 블럭으로 잡아도 대응 방법이 없다.
예)
- 메모리 부족
- 정의 되지 않은 클래스 등
3. 런타임 예외 (Runtime Exception / Unchecked exception)
RuntimeException을 상속한 클래스들로 주로 프로그래머의 실수에 의해 발생한다.
명시적인 예외처리를 강제하지 않기 때문에 언체크 예외라고 불리며, 예외 처리가 아니라 프로그래머가 코드를 주의 깊게 작성하여 피해야 한다.
예)
- 배열의 범위를 벗어남(IndexOutOfBoundsException)
- 값이 null인 참조변수의 멤버를 호출하려 함(NullPointerException)
- 클래스간의 형변환을 잘못함(ClassCastException)
- 정수를 0으로 나누려 함(Arithmetic- Exception) 등
4. 논-런타임 예외 (Non-Runtime Exception, Checked Exception)
Exception 클래스의 서브클래스이면서 RuntimeException 클래스를 상속하지 않은 것들로, 주로 사용자들의 동작에 의해 발생한다.
반드시 예외처리(try-catch, throws)를 해주어야 하며, 그렇지 않으면 컴파일러가 에러를 발생 시킨다.
예)
- 존재하지 않는 파일을 처리하려함(FileNotFoundException)
- 실수로 클래스의 이름을 잘못 적음(ClassNotFoundException),
- 입력한 데이터의 형식이 잘못됨(DataFormatException) 등
'개발_웹 > Java' 카테고리의 다른 글
Java | this, super / this(), super() (0) | 2019.05.09 |
---|---|
Java | 예외 처리 (try-catch, throw, throws) (0) | 2019.05.09 |
Java | for-each 반복문 (0) | 2019.05.09 |
Java | 날짜, 시간 (currentTimeMillis(), SimpleDateFormat) (0) | 2019.05.09 |
eclipse에서 Gradle 프로젝트 rename 안되는 경우 (0) | 2019.01.07 |