1. 오류와 예외
1) 오류(error)
시스템적인 오류 -> 프로그램에서 제어 불가능.
ex) 메모리 오버플로우, 메모리 부족 등
오류 종류
- 컴파일 오류(compile error): 문법적 오류.
- 실행오류(runtime error): 프로그램의 의도치 않은 동작(=bug), 중지되는 경우.
2) 예외(Exception)
개발자가 구현한 로직안에서 발생 -> 프로그램으로 제어 가능.
발생할 상황을 미리 예측해서 처리할 수 있다.
ex) 배열 요소를 출력하려는데 값이 없는 경우, 데이터 타입이 맞지 않는 경우 등
예외 종류
Compile Checked Exception: 컴파일 전에 알 수 있는 예외.
ex) IOException, ClassNotFoundException 등등
Compile Unchecked Exception: 실행 중 발생하는 예외.
ex) RuntimeException 계열
2. Checked Exception과 Unchecked Exception
예외는 크게 이 두 종류로 나뉜다.
Checked Exception | Unchecked Exception | |
확인 시점 | 컴파일 전 | 실행 중 |
처리 | 필수 | 필수아님 |
트랜젝션 처리 | roll-back 안함 (실행 이전으로 되돌리지 않음) |
roll-back 수행 (실행 이전으로 되돌림) |
종류 | RuntimeException 계열 외 | RuntimeException 계열 |
컴파일 전에 빨간 밑줄이 뜨면서 예외처리를 하라고 하는것과
3 / 0은 실행하면 분명 0으로 나눌 수 없다는 에러가 남에도 불구하고 실행전에 빨간 줄이 뜨지 않는다.
이처럼 컴파일 전에 예외처리를 요구 하는지 안하는지에 따라 checked/unchecked로 나뉜다.
3. Exception 종류
자바의 오류클래스는 모두 Throwable 클래스에서 상속받으며,
Error 클래스의 하위 클래스는 시스템에서 발생하는 오류를 다루므로 프로그램에서 제어하지 않고,
Exception 클래스는 예외 클래스의 최상위 클래스이다.
예외 클래스 위에 마우스를 두고 f4를 누르면 이렇게 클래스의 관계들을 볼 수 있다.
4. 예외, 에러 메시지 보는 방법
ArithmeticException: 예외 발생을 탐지하는 객체.
슬러시(/) 뒤에 예외발생의 원인이 나온다. : by zero => 0으로 나눠서 발생
at뒤에는 발생 위치를 나타낸다. : 44번째 줄.
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JAVA) 자바 Math.ceil 자세히 알아보기(올림, 소수점 버리기) (0) | 2022.05.17 |
---|---|
JAVA) 예외 처리 try~catch, throws, 사용자 정의 예외 (0) | 2022.03.15 |
JAVA) 인터페이스(interface) 정의, 사용 이유 (0) | 2022.03.03 |
JAVA) 자바 추상화(abstract) (0) | 2022.02.28 |
JAVA) 자바 Getter/Setter 의미와 왜 사용하는지 알아보자 (0) | 2022.02.28 |