01. 예외처리
02.예외 클래스
03. 예외 처리 문법
04. 예외 던지기
05. 사용자 정의 예외 처리
<에러와 예외>
-에러 : 해결할 수 없는 시스템에 에러가 발생해 프로그램이 종료된 경우
: 개발자가 예측하거나 처리할 수 없는 영역
에러의 종류 | 상황 |
OutOfMemoryError | 프로그램 실행 중 메모리 부족 |
IOError | 입출력 에러 |
StackOverFlowError | 가용 메모리 부족 현상, 재귀 호출 문제 시 발생 |
-예외 : 프로그램 사용 중 발생한 오류를 개발자가 처리해 메시지가 출력된 경우
: 문법적으로 문제없어 보이지만 실제 운영 중에 생기는 문제들
구분 | 체크 예외(=일반예외) | 비체크 예외(실행예외) :더 힘든 경우 |
처리여부 | 문법적으로 예외 처리를 강제함 반드시 처리해야 함 |
문법적으로 강제하지 않음 개발자의 판단에 의해 처리 |
확인 시점 | 컴파일 단계 | 실행 단계 |
예외 클래스 | -Runtime Exception을 제외한 모든 예외 -IOException -SQLException 등 |
-Runtime Exception의 자식클래스 모두 포함 -NullPointerException -IndexOutOfBoundException -CalssNorFoundException 등 |
<예외 클래스>
최상위의 Throwable을 상속받은 에러와 예외가 있다
에러는 시스템상의 심각한 수준의 오류라 수습될 수 없는 반면에 , 예외는 로직을 추가하여 처리할 수 있다
▶NullPointerException
가장 빈번하게 발생하는 실행 예외
객체가 제대로 생성되지 않은 상태에서 사용할 경우 발생
객체는 정의됐는데 실제 메모리에 생성되지 않을 경우, 예외 발생
▶NumberFormatException
잘못된 문자열을 숫자로 형 변환할 때 발생
숫자 형태의 문자열은 정수 타입으로 변환할 수 있으나 문자가 포함되거나 실수 형태의 문자열은 반환할 수 없다.
▶ArrayIndexOutOfBoundsException
배열에서 인덱스 범위를 초과해 사용할 때 발생
<예외처리 문법>
-예외처리 과정
1.코드 진행 중 예외가 발생하면 JVM에게 알린다
2. JVM은 발생한 예외를 분석하여 알맞은 예외 클래스를 생성한다
3. 생성된 예외 객체를 발생한 지점으로 보낸다
4.예외가 발생한 지점에서 처리하지 않으면 프로그램은 비정상 종료된다.
-try~catch구문 : 예외를 처리하는 가장 기본 문법
-다중 catch사용하기
유의할 점) 순서에 유의해야 한다
exception을 chtch문 맨 앞에 사용하면 문법에러가 발생한다.
catch(Exception e)를 마지막에.
-finally : 예외 발생 유무와 상관없이 실행되는 구문이며 생략 가능
: 보통 외부 연동이나 예외가 발생해도 정상 종료되어야 할 구문
<예외 던지기>
throws : 여러개를 던질 수 있으며, 여러개를 던질 시에는 콤마로 구분해서 나열
-임의의 예외처리 방법
: 예외 발생 상황이 아니더라도 필요해 의해 강제로 예외를 발생시키는 기능
: throw new 예외객체(메시지);
: 트라이 캐치 내부 또는 메서드에 예외 던지기가 있는 경우
: 개발자가 예외를 의도하는 위치
<사용자 정의 예외처리>
: 문법적인 예외가 발생하지 않더라도 프로그램의 규칙에 맞지 않거나 흐름에 문제가 생기면 사용자가 직접 예외를 발생시킬 수 있음.
'JAVA > 교재' 카테고리의 다른 글
JAVA 16 - 컬렉션 프레임워크 (0) | 2025.01.23 |
---|---|
JAVA 15- 기본 API 클래스 (1) | 2025.01.22 |
JAVA 13- 내부 클래스 (0) | 2025.01.20 |
JAVA 01- 자바 프로그래밍의 기본 (0) | 2025.01.19 |
JAVA 12- 추상 클래스와 인터페이스 (0) | 2025.01.18 |