일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- exception
- 예외 처리
- 자바
- try-catch
- 새벽공부
- 인스턴스
- 백엔드
- 초보개발자
- MPA
- 자료형
- FileInputStream
- 인터페이스
- throws
- Java
- 다형성
- 문자 단위 스트림
- 바이트 단위 스트림
- 상속
- 졸리다
- 보조 스트림
- SSR
- 코딩
- 파이팅
- 배열
- node.js
- 코린이
- ArrayList
- 메서드
- 개발자
- 변수
- Today
- Total
SHUSTORY
14-4 사용자 정의 예외 본문
사용자 정의 예외
자바에서 제공하는 예외 처리 클래스 이외에 개발하는 프로그램에 따라 다양한 예외 상황이 발생할 수 있다.
예를 들어 어떤 사이트에 회원 가입을 할 때 다음과 같은 조건이 있다고 해보자.
- 아이디 값이 null 이어서는 안 된다.
- 아이디 값이 8자 이상 20자 이하로 만들어야 한다.
위 조건에 대한 예외 클래스를 직접 만들어 예외를 발생시키고 예외 처리 코드를 구현할 수 있다.
사용자 정의 예외 클래스 구현하기
사용자 정의 예외 클래스 구현 시에는 기존 JDK에서 제공하는 예외 클래스 중 가장 유사한 클래스를 상속받는 것이 좋다.
만약 유사한 예외 클래스를 잘 모르겠다면 가장 상위 클래스인 Exception 클래스에서 상속받도록 한다.
Exception 클래스에서 상속받아 코드를 구현하였다.
예외 상황 메시지를 생성자에서 입력받는다.
Exception 클래스에서 메시지 생성자, 멤버 변수와 메서드를 이미 제공하고 있으므로
super(message)를 사용하여 예외 메시지를 설정한다.
* 나중에 getMessage( ) 메서드 호출 시 메시지 내용을 볼 수 있다.
IDFormatTest 클래스에서 setUserID( ) 메서드는 아이디에 대한 제약 조건을 구현한다.
이 제약 조건이 지켜지지 않으면 예외를 발생시킨다.
여기서 발생하는 예외는 자바에서 제공하는 예외가 아니기 때문에 예외 클래스를 직접 생성하여 예외를 발생시켜야 한다.
예외 처리를 할 때는 로그를 잘 남기자
프로그램을 개발할 때는 로그를 남기는 것이 매우 중요하다.
오류가 발생했을 때 로그를 보고 오류가 발생하는 코드를 순서대로 따라가며 확인할 수 있고 원인을 찾을 수 있다.
로그는 정보 의미에 따라 레벨을 나누어 관리한다.
간단한 정보 의미를 가진 로그부터 심각한 예외가 발생했을 때의 로그까지 여러 레벨이 존재할 수 있다.
이러한 로그를 체계쩍이고 의미 있게 남겨서 시스템에서 오류가 났을 때 그 원인을 유추해 볼 수 있어야 한다.
'프로그래밍 > JAVA' 카테고리의 다른 글
15-2 표준 입출력 (0) | 2023.03.21 |
---|---|
15-1 자바 입출력과 스트림 (0) | 2023.03.21 |
14-3 예외 처리 미루기 (0) | 2023.03.17 |
14-2 예외 처리하기 (0) | 2023.03.16 |
14-1 예외 클래스 (0) | 2023.03.16 |