쉽게 쉽게

예외처리 본문

개발공부/Java

예외처리

곱마2 2023. 3. 20. 17:48
반응형

이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다.


1. 프로그램 오류

컴파일 에러 : 컴파일 시에 발생하는 에러
런타임 에러 : 실행 시에 발생하는 에러
논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것

컴파일 에러는 빌드 과정에서 나타나는 개발자로서 가장 상대하기 편한 오류다.

소스 코드에 오타나 문법적 결함 등이 있으면 빌드 자체가 되지 않기 때문에 파악하기 쉽다.

 

런타임 에러는 실행 과정에서 철자나 문법 검증에서 드러나지 않는 논리적 결함이나 예상치 못한 돌발 변수에 의해 발생하기 때문에 컴파일 에러보다 까다로운 에러이다.

(NULL에 의한 오류, 0으로 나눠서 생기는 오류, 무한루프같은 에러가 런타임 에러이다.)

 

논리적 에러(논리 에러)는 컴파일이나 실행 자체는 성공하지만 잘못된 결과를 반환하는 에러를 말한다.

오류 검출 과정

(1) 소스 코드를 컴파일하면 컴파일러가 소스코드(*java)에 대해 오타나 잘못된 구문, 자료형 체크 등의 검사 수행 (컴파일 에러)

(2) 컴파일을 성공적으로 마치고 나면, 클래스 파일(*class)이 생성되고, 생성된 클래스 파일을 실행

(3) 실행 중에 발생하는 오류와 비정상적 동작을 검사
(런타임 에러)

2. 예외 클래스 구조

(1) RuntimeException클래스

RuntimeException클래스는 주로 프로그래머의 실수에 의해서 발생될 수 있는 예외들이다.
RuntimeException클래스의 예외들은 명시적으로 예외처리를 강제하지 않는다. 즉 따로 catch문으로 예외를 잡거나, throws를 선언하지 않아도 된다.
때문에 RuntimeException클래스를 'unchecked예외'라 부른다.
(프로그램에 오류가 있을 때 발생하도록 의도된 예외들)
해결하지 않으면 런타임 에러 발생
ex) 배열의 범위 초과, 값이 null인 참조변수 호출, 형변환 잘못 등등

(2) Exception클래스

Exception클래스는 주로 외부의 영향으로 발생할 수 있는 예외들이다.
Exception클래스의 예외들은 복구가 가능한 예외이기 때문에 예외를 반드시 처리해야 한다. catch문이나, throws로 예외를 해결해야 한다.
때문에 Exception클래스들은 'checked예외'라고 부른다.
해결하지 않으면 컴파일 에러 발생
ex) 존재하지 않는 파일명, 존재하지 않는 클래스 등등

 

잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.
반응형

'개발공부 > Java' 카테고리의 다른 글

날짜와 시간  (0) 2023.03.22
Java.lang 패키지  (0) 2023.03.21
인터페이스  (0) 2023.03.20
객체지향언어(캡슐화, 다형성)  (0) 2023.03.17
객체지향언어(특징, 추상화, 상속)  (0) 2023.03.16