Exception은 try-catch를 이용해 프로그램의 비정상적인 종료를 막을 수 있습니다.
Exception은 Checked Exception, Unchecked Exception으로 나뉩니다.
Checked Exception
Checked는 컴파일 시점에서 체크되는 예외로 컴파일 시에 예측이 됩니다.
Checked Exception은 발생 시킬 수 있는 메서드를 사용할 경우 반드시 throws를 통한 예외를 던지거나
try-catch를 이용해 예외처리를 해줘야 하는 강제성이 있습니다.
Unchecked Exception
Unchecked는 컴파일 시 체크되지 않으며 프로그램 실행 도중 발생하는 예외로 예측이 불가능합니다.
Unchecked Exception은 발생시 킬 수 있는 메서드를 사용할 경우에는 강제성이 없습니다.
그렇기 때문에 개발 편의가 있고 어느 개발자는 모든 예외를 Unchecked Excetion으로만 처리한다고도 합니다.
단, Unchecked Exception은 예외처리를 하지 않은 상태에서 예외가 발생한다면 오류를 뱉어내며 프로그램이 비정상 종료되므로 주의해야 합니다.
위 그림을 보면 알 수 있듯이 RuntimeException은 Unchecked Exception에 속합니다.
RuntimeException의 종류
-ArithmeticException : 정수를 0으로 나누었을 경우
-ArrayStoreException :배열 유형이 허락하지 않는 객체를 배열에 저장하려는 경우
-ArrayIndexOutOfBoundsException : 배열을 참조하는 인덱스가 잘못된 경우
-ClassCastException : 적절치 못하게 Class를 형 변환하는 경우
-NullPointerException : 널 객체를 참조했을 경우
-NegativeArraySizeException : 배열의 크기가 음수인 경우
-NoClassDefFoundException : 클래스를 찾을 수 없는 경우
-OutOfMemoryException : 사용 가능한 메모리가 없는 경우
-IndexOutOfBoundsException : 객체의 범위를 벗어난 색인(Index)를 사용하는 경우
-IllegalArgumentException : 메서드에 유형이 일치하지 않는 매개변수를 전달하는 경우
-IllegalMonitorStateException : 스레드가 스레드에 속하지 않는 객체를 모니터 하려고 기다리는 경우
-IllegalStateException : 적절하니 않은 때에 메서드를 호출하는 경우
'Java' 카테고리의 다른 글
[ThreadLocal] 쓰레드 로컬 사용해보기 (0) | 2023.04.22 |
---|---|
[Java] Mac에서 여러개의 Java 버전 확인하기 (0) | 2022.12.13 |
[java] stream (0) | 2022.07.27 |
[Java] equals()와 hascode() 메서드 (0) | 2022.07.09 |
[Java] String 클래스 메소드 정리 (0) | 2022.05.10 |
댓글