Exception에 대해서 질문드립니다.
684
投稿した質問数 70
실무를 하다 보면 다양한 Exception이 많이 나오게될텐데 그럴때마다 Exception파일을 만들어서 상속 받은 뒤 처리를 하시나요?? 그러면 엄청나게 많은 Exception파일들이 생길 것 같아서요!!
아니면 공통적인 Exception들만 ExceptionHandler로 잡아서 에러처리하고 공통적이지 않은 Exception들은 어떤식으로 처리하는지 궁금합니다.
저희 회사같은 경우는 Enum클래스에 여러가지 상황에맞는 상태코드와 문구를 설정해두고, 해당 상황이 나오면 상태코드와 문구를 Json데이터에 세팅하여 내려주더라구요. 반면에 ExceptionHandler는 사용하지 않고 있어요.
호돌맨님은 어떤식으로 처리하는지 궁금하여 질문드립니다.
回答 1
3
안녕하세요. 호돌맨입니다.
말씀하신대로 Exception을 상속받은 하나한 만들어서 처리합니다.
4xxException -> InvalidRequest(400), NotFound(404), AccessDenied(403)
이런식이죠.
그런데 예외가 많아진다면.. 경계를 어떻게 나눌것인지 생각해볼것 같습니다.
예를들어 404에는 종류가 많을 겁니다.
사용자를 찾을 수 없음 (UserNotFound)
도서를 찾을 수 없음 (BookNotFound)
관리자를 찾을 수 없음 (AdminNotFound)
리뷰를 찾을 수 없음 (ReviewNotFound)
댓글을 찾을 수 없음 (CommentNotFound)
기타 등등
이러면 귀찮으니깐
NotFoundException을 하나 만들고 메세지를 Enum에서 찾아 던지는것도 방법이라고 생각합니다.
enum NotFoundType {
BOOK("도서"),
USER("사용자"),
ADMIN("괸리자"),
REVIEW("리뷰"),
COMMENT("댓글")
private final String message;
public getMessage() {
return this.message + "을(를) 찾을 수 없습니다.";
}
}
class NotFoundException extends MyServiceException {
private final String message;
public NotFoundException(String message) {
this.message = message;
}
public NotFoundException(NotFoundType type) {
this.message = type.getMessage()
}
}대충 위와 같은 느낌이죠. (저는 저렇게 해본적은 없습니다.) 아무튼 방법은 너무 많을것 같습니다.
MyServiceException을 상속받은 예외들은 ExceptionHandler에서 MyServiceException만으로 Catch를 할 수 있을테니 처리방식이 복잡하지는 않을것 같습니다.
감사합니다.
Deprecated 관련 사항들
0
100
2
깃헙 collaboator 초대 관련
0
87
1
강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다
0
157
2
logout 후에 login 페이지 이동은 어디서 시켜주는건가요?
0
231
1
다중 데이터를 삭제 할 때
0
270
2
querydsl Q class 이슈
0
414
2
Windows WSL Vue 설정
2
246
1
Dip, @transactional
0
187
1
[vite] http proxy error: /auth/login
0
1043
2
로그인 하고 나서 GET요청으로 메인페이지 요청
0
234
2
GitHub Collaborator 초대 관련
0
256
2
Window에서 Vue.js 설정
0
321
2
(솔루션 수정)'tsyringe' Error: TypeInfo not known for "클래스명"
0
713
2
collaboator로 초대받을 수 있을까요??
0
283
2
SecurityMockContext 로부터 유저 정보를 가져오기
0
261
1
given 부분이 길어질 때 어떻게 처리하면 좋을까요?
0
318
1
섹션9 프론트의 코드를 보고싶습니다,,,
0
423
1
Spring Security - defaultSuccessUrl 질문
0
625
1
강의 화면이 나오지 않습니다. 음성과 자막만 나와요
0
302
1
JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ
0
690
2
ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상
0
1179
2
섹션10 언제 나오나요?
0
484
1
CommentService에서 Repository를 호출하지 않는데도
0
342
1
Editor....를 활용한 패턴에 질문있습니다.
0
494
1

