표준 예외와 커스텀 예외란? #13
Replies: 8 comments
-
표준 예외자바에서 기본적으로 제공하는 예외 클래스이다. 이미 일반적인 오류 상황을 표현하도록 만들어서 대부분은 표준 예외를 사용한다! 커스텀 예외프로젝트의 비즈니스 상황을 표현하기 위해 개발자가 직접 만드는 예외이다. 왜 써야 될까 ?
예를 들어 throw new IllegalArgumentException(); 만 하면 회원 중복인지, 사용 중인 건지 등듣 알기 어렵다ㅏ. 언제 쓸까?
어떻게 쓸까?BusinessException이라는 공통 부모 예외를 만들고 |
Beta Was this translation helpful? Give feedback.
-
기본 질문1. 표준 예외와 커스텀 예외에 대해서 설명해주세요.자바에서 예외는 프로그램 실행 중 발생한 비정상 상황을 표현하는 객체이다. 예외를 처리하는 목적은 단순히 프로그램이 종료되지 않게 만드는 것이 아니라 '어떤 문제가 발생했는지', '어디에서 발생했는지', '호출자가 복구할 수 있는지', '사용자에게 어떤 메시지를 보여줘야 하는지' 의 요소들을 명확하게 하는 데 있다. 자바의 예외 관련 최상위 클래스는 Throwable이다. Error는 일반적으로 애플리케이션 코드에서 복구하기 어려운 심각한 문제를 나타낸다. [ 표준 예외 ] [ 커스텀 예외 ] |
Beta Was this translation helpful? Give feedback.
-
표준 예외JDK 가 라이브러리 차원에서 이미 정의하여 기본으로 제공하는 예외 클래스. 표준예외는 누구나 알기 때문에 직관성 및 가독성이 좋다. 그리고 다른 라이브러리나 프레임워크와 결합할 때 별도의 변환과정 없이 상호작용 가능하다. 커스텀 예외표준 예외에 내가 원하는 예외가 없으면 직접 만들어 쓰는 예외. 비지니스 요구사항의 명확한 표현이 가능하다. 에러 메세지 뿐만 아니라 추가 데이터도 붙일 수 있다. 정리우리 서비스의 핵심 비지니스 로직에 대한 예외 && 표준 예외로 표현이 명확하지 않음-> 커스텀 예외로 명확히 표현해주면 좋다. |
Beta Was this translation helpful? Give feedback.
-
표준 예외와 커스텀 예외에 대해서 설명해주세요.표준 예외(Built-in-Exceptions)는 프로그래밍 언어나 런타임 환경에서 기본적으로 제공하는 예외 클래스들이다. 공통적이고 일반적인 오류 상황을 다루며, 별도의 정의가 필요하지 않다는 장점이 있다. java에서의 표준 예외는 다음과 같은 것들이 있다. NullPointerException //null 참조 접근 시
ArrayIndexOutOfBoundsException //배열 범위 초과
IllegalArgumentException //잘못된 인자 전달
IOException //입출력 오류
NumberFormatException //숫자 변환 실패
커스텀예외는 특정 도메인 또는 비즈니스 로직에서 발생하는 구체적인 상황에 맞게 예외처리되도록 직접 정의하는 예외 클래스이다. 예외 이름으로 구체적인 예외 상황을 표현하고 예외 메시지 구조를 커스텀 할 수 있다는 장점이 있다. <설계관점 비교>
abstract class BusinessException extends RuntimeException {}
class OrderException extends BusinessException {}
class OrderNotFoundException extends OrderException {}
<참고>
throw new RuntimeException("Error code 500"); //-표준예외
throw new UserAlreadyRegisteredException(); //"이미 가입된 유저" -커스텀 예외
사진 자료: |
Beta Was this translation helpful? Give feedback.
-
1. 표준 예외와 커스텀 예외에 대해서 설명해주세요.표준 예외는 자바가 만들어서 제공하는 예외들이고 커스텀 예외는 자바 표준 예외를 상속 받아 비지니스 예외 성격에 맞게 새로 이름 지어준 예외입니다. 즉, 커스 |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
표준 예외는 자바 라이브러리에서 제공하는 예외로 일반적인 오류 상황을 표현한다. 반면 커스텀 예외는 프로젝트의 비즈니스 로직이나 규칙을 표현하기 위해 표준 예외만으로 의미를 정확하게 전달할 수 없을 때 개발자가 직접 커스텀한 예외이다. 우선 커스텀 예외에 대해 할말이 많은데 커스텀 예외 이름을 지을 땐 어떤 문제가 발생했는지 쉽게 파악할 수 있도록 지어야 코드의 가독성과 유지보수에 좋다. 커스텀 예외는 표준 예외인 Exception을 상속받는 Checked Exception과 Exception의 자식 클래스인RuntimeException을 상솓받는 Unchecked Exception으로 나눌 수 있다. Checked 익셉션은 컴파일러가 반드시 처리하도록 강제하는 예외로 파일이나 데이터베이스처럼 외부환경에 의해 오류가 발생했을 때, 호출 한 곳에서 복구할 방법이 있을 때 쓰는 예외이다. Unchecked Exception은 NullPointerException이나 IllegalArgumentException처럼 개발자가 쓴 잘못된 코드로 인해 복구할 수 없어서 던지는 예외로 컴파일러가 강제하지는 않는다. |
Beta Was this translation helpful? Give feedback.
-
표준 예외와 커스텀 예외에 대해서 설명해주세요.표준예외→ 표준예외란 자바 API에서 제공하는 예외를 의미합니다.
커스텀예외→ 커스텀 예외란 자바에서 제공하는 예외를 상속해 직접 만든 예외 클래스입니다. |
Beta Was this translation helpful? Give feedback.




Uh oh!
There was an error while loading. Please reload this page.
-
📆 일자: 26년 7월 14일(화)
기본 질문
표준 예외와 커스텀 예외에 대해서 설명해주세요.
Beta Was this translation helpful? Give feedback.
All reactions