Error와 Exception의 차이

Gunjoo Ahn·2022년 8월 14일
0

Error

Error는 컴파일타임에 문법에러나, 런타임에 StackOverflowError 같은 오류로 인해 프로세스 자체적으로 복구가 불가능하며, 프로세스를 더 이상 실행할 수 없어 종료해야한다. JVM의 숨겨진 버그가 발생할 확률보다는 코드를 잘못짜거나(무한 재귀), JVM 설정을 수정해야할 확률(부족한 메모리 할당, OutOfMemoryError)이 높다.

Exception

Exception은 프로세스 동작 도중 예외 상황이 발생하는 것이다. 예를 들어 네트워크 통신이 예기치 못하게 끊어 졌거나, 0으로 나누기를 시도하는 등의 예외 상황이 있을 수 있다. 예외는 발생하더라도 예외 처리를 통하여 복구 가능하며 프로세스를 계속 실행할 수 있다.

Checked Exception

컴파일레벨에서 필수적으로 예외 처리를 해야하는 Exception이다. 예외 처리를 하지 않으면 컴파일을 실패한다. Runtime Exception 제외 전부이며, IOException, ParseException, DataFormatException, CertificateException,SQLException 등이 있다.

Unchecked Exception

Runtime Exception을 상속하는 모든 Exception이다. ArithmeticException, IndexOutOfBoundsException, NegativeArraySizeException, FileSystemAlreadyExistException, FileSystemNotFoundException, NullPointerException 등이 있다.

Throwable

Error와 Exception은 Throwable을 상속한다.

Reference

https://gyoogle.dev/blog/computer-language/Java/Error%20&%20Exception.html
https://docs.oracle.com/javase/8/docs/api/java/lang/VirtualMachineError.html
https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html
https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html

profile
Backend Developer

0개의 댓글