728x90
- 에러는 발생 시점에 따라 컴파일에러, 런타임에러, 논리적 에러가 있다.
- 컴파일 에러 - 컴파일 시에 발생하는 에러
- 런타임 에러 - 실행 시에 발생하는 에러
- 논리적 에러 - 실행은 되지만, 의도와는 다르게 동작하는 것
- 자바에서는 실행 시 발생할 수 있는 프로그램 오류를 '에러'와 '예외' 두 가지로 구분했다.
- 에러 - 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
- 예외 - 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
- 예외처리란 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이다.
예외처리의 목적은 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것이다. - 처리되지 못한 예외는 JVM의 예외처리기(UncaughtExceptionHandler)가 받아서 예외 원인을 화면에 띄워준다.
- 예외 처리를 위해선 try-catch 문을 사용하며 발생한 예외의 종류와 일치하는 단 한 개의 catch 블럭만 수행된다.
- throw를 사용해서 프로그래머가 고의로 예외를 발생시킬 수 있다.
- 메서드에 예외를 선언하기 위해선 선언부에 throws를 사용해서 메서드 내에서 발생할 수 있는 예외를 적어주면 된다.
- finally블록은 예외의 발생여부에 상관없이 실행되어야 할 코드를 포함시킬 목적으로 사용된다.
try-catch문의 끝에 선택적으로 덧붙여 사용할 수 있다. - 하나의 예외가 다른 예외를 발생시킬 수 있는데 이때 예외의 원인이 되는 예외를 '원인 예외'라고 한다.
예외를 생성 후 initCause() 로 원인 예외를 등록한 후, 생성된 예외를 throw로 던지면 된다.
이와 같은 처리를 하는 이유는 여러가지 예외를 하나의 큰 분류의 예외로 묶어서 다루기 위함이다.
또 다른 이유로는 checked예외를 unchecked예외로 바꿀 수 있도록 하기 위함이다.
'독후감 > Java의 정석-기초편' 카테고리의 다른 글
Java의 정석 기초편 독후감 (10) - 날짜와 시간&형식화 (0) | 2025.03.12 |
---|---|
Java의 정석 기초편 독후감 (9) - java.lang 패키지와 유용한 클래스 (0) | 2025.03.10 |
Java의 정석 기초편 독후감 (7) - 객체지향 프로그래밍 II (0) | 2025.03.09 |
Java의 정석 기초편 독후감 (6) - 객체지향 프로그래밍 I (1) | 2025.03.09 |
Java의 정석 기초편 독후감 (5) - 배열 (0) | 2025.03.04 |