본문 바로가기

Knowledge Wiki/Java

JAVA Exception

1. Java의 런타임 에러
    1) 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
    2) 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
        일반 Exception 클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
        RuntimException 클래스들: 프로그래머의 실수로 발생하는 예외

2. 예외 처리의 목적은 비정상 종료를 막고 정상적인 실행상태를 유지하는 것

3. checked 예외, unchecked 예외
    checked예외: 컴파일러가 예외 처리 여부를 체크 (예외 처리 필수) 
        ex) Exception

    unchecked예외: 컴파일러가 예외 처리 여부를 체크 안함 (예외 처리 선택)
        ex) RuntimeException

4. 연결된 예외(chained exception)
    한 예외가 다른 예외를 발생시킬 수 있다.
    예외 A가 예외 B를 발생시키면 A는 B의 원인 예외(cause exception)이다.
    initCause(): 지정한 예외를 원인 예외로 등록한다.
    getCause(): 원인 예외를 반환한다.

5. 연결된 예외는 checked예외를 unchecked예외로 변경할 때도 사용한다.
    checked예외를 unchecked예외의 cause exception으로 등록하면 된다.
    자바가 1991년에 만들어졌다보니 그때와 지금의 exception 처리 생각이 다른 경우가 좀 있다.
    즉, 그땐 checked예외로 구현해야했지만 오늘날에는 unchecked예외로 다루는 게 더 나은 경우가 종종 있다.
    이런 경우들에 사용하기 위해 연결된 예외를 사용하기도 한다.

 

6. ConcurrentModificationException 예외
    여러 데이터를 담고 있는 객체에서 읽기 수행 중 add(), remove()등의 변경이 발생할 경우 발생

'Knowledge Wiki > Java' 카테고리의 다른 글

JAVA equals(), hashCode()  (0) 2021.11.30
JAVA native 메서드  (0) 2021.11.30
JAVA final 키워드  (0) 2021.11.30
JAVA 내부 클래스  (0) 2021.11.30
JAVA 디폴트 메서드  (0) 2021.11.30