프로그래밍 언어/JAVA

JAVA) 오류와 예외, 예외, 오류 메세지 보는 방법

luana_eun 2022. 3. 14. 20:25
728x90

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번째 줄. 

728x90