• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

공통 예외처리 질문 있습니다

24.03.31 03:08 작성 24.03.31 03:10 수정 조회수 95

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
예외를 던질 때 cause 예외를 함께 넘기니까

공통 예외처리하는 부분에서는 Exception으로 예외를 잡아서 로그를 남기나요?

답변 1

답변을 작성해보세요.

1

y2gcoder님의 프로필

y2gcoder

2024.04.01

안녕하세요. 대영님

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

코드 예시와 함께 이해하고 계신 내용을 조금 더 풀어서 설명해주시겠어요?


cause를 넘기는 부분이 직접 만든 데이터 접근 예외의 생성자 시그니처 중 MyDuplicateKeyException(String message, Throwable cause) 에서의 cause를 말씀하시는 걸까요?

아니면 단순히

image여기서 catch(MyDuplicateKeyException e) 부분을 말씀하시는 것일까요?

 

예외를 처리하는 방법은 또 여러가지가 있을 것 같습니다! 만약 웹 애플리케이션이고, 사용자에게 에러에 대한 응답을 내려줘야 한다면 예외를 계속 던져 @ExceptionHandler + @ControllerAdvice(@RestControllerAdvice) 를 통해 에러 응답을 남겨줄 수 있을 것입니다. 이 때도 중간에 한번 try-catch로 잡아서 해당 예외에 대한 로그를 잠깐 남기고 다시 예외를 던질 수 있을 것 같습니다!

아니면 위의 예시와 같이 DB에서 발생한 예외를 서비스 단에서 처리할 수도 있을 것입니다 🙂

 

 

감사합니다.

대영님의 프로필

대영

질문자

2024.04.01

질문을 잘못 한 것 같습니다 ㅜㅜ

에러에 대한 응답을 내려줄 때 원하는 특정 예외에 대한 ExceptionHandler만 만드는지

아니면 잡고자 하는 특정 예외에 대한 ExceptionHandler + Exception.class ExceptionHandler를 같이 만들어서 나머지 예외에 대한 응답도 같이 처리해주는지 궁금했습니다

안녕하세요. 대영님

특정 예외에 대한 처리가 필요하면 @ExceptionHandler에서 특정 예외를 잡고,

추가로 특정 예외에서 잡기 어려운 경우에는 Exception.classs를 잡아서 처리합니다.

결국 둘다 각각 잡는다고 보시면 됩니다.

감사합니다.

대영님의 프로필

대영

질문자

2024.04.01

답변 감사합니다 :)