해결된 질문
작성
·
51
0
선생님 예외쪽 수업을 계속 듣다가 예외를 변환할 때 기존 예외를 꼭 포함하기 위해 기본 생성자인
public MyDbException() { }
를 안만들고 나머지만 만들어서 이러한 상황이 안나오게 하는게나아보인다는 생각이 들었는데 이렇게 하는 건 뭔가 안좋은게 있거나 하는건가요? 실무에서는 어떻게 하는지도 궁금합니다..!
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
이승환님, 강의에서 언급된 예외 변환과 관련된 부분에 대해 궁금하신 점이 있으시군요. 관련된 질문과 답변을 찾고 설명을 추가해 드리겠습니다.
아래 링크에서 유사한 내용을 다룬 질문들을 확인해 보세요.
1.
- 직접 RuntimeException을 상속한 예외를 만든 이유
- RuntimeException 관련 질문
이 링크들에서 예외를 변환할 때 기본 생성자를 포함하는 이유와, 왜 예외를 세분화하여 사용하는 것이 중요한지를 다뤘습니다.
예외를 변환할 때 기존 예외를 포함하지 않으면 stack trace가 유실될 수 있으며, 문제의 원인을 정확히 파악하기 어려워지는 단점이 있습니다. 따라서 기본 생성자를 제공하여 예외 인스턴스를 생성할 때 원래의 예외를 포함하도록 하는 것이 좋습니다. 이는 실무에서도 문제가 발생했을 때 디버깅을 용이하게 하기 위해 일반적으로 사용되는 방법입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
그러니까 예외를 던질 때 항상 기존 예외를 꼭 포함하기 위해 e를 던져줘야한다고 하셨는데 이 기존 예외를 꼭 포함하기 위해서 기본 생성자인 public MyDbException() { }를 안만들어준다면 예외를 꼭 포함해서 던지지않을까 이런 생각이 들어서요! 그러면 객체를 생성해서 던질때 항상 예외를 포함해서 던지지않을까요..?