작성
·
227
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
우선 neta6603님께서 강의를 잘 보고 계신다니 정말 기쁘게 생각합니다ㅎㅎ
RuntimeException으로 예외를 감싸는 방식은 여러 가지 이유가 있습니다만, 주로 다음과 같은 이유들 때문입니다:
Unchecked Exception: RuntimeException은 Unchecked Exception에 속하기 때문에, 강제로 예외를 처리하지 않아도 됩니다. 이로 인해 개발자가 더 많은 컨트롤을 가질 수 있으며, 필요한 경우에만 예외 처리를 구현할 수 있습니다.
흐름 제어: 정의된 비즈니스 로직에서 예상치 못한 오류가 발생할 경우 체계적으로 이를 핸들링하여 프로그램의 흐름을 제어할 수 있습니다. 예를 들어, 예외를 감싸서 상위 레벨로 전파하거나, 특정 타입의 예외에 대해 일관된 처리를 수행할 수 있습니다.
원인 파악 용이성: 원래 발생한 예외를 RuntimeException으로 감싸게 되면, 스택 트레이스(stack trace)에 함께 예외 정보가 포함되어 원인 파악이 용이해집니다. 또한, 예외를 잡아내는 코드에 원본 예외를 넘겨주면 로그 등을 통해 추적하기가 편리해집니다.
런타임 의존성 감소: 자체적인 예외 체계를 마련함으로써, 특정 예외 처리에 대한 라이브러리 또는 API의 의존성을 줄일 수 있습니다. 이는 코드의 이식성 및 유지보수성을 높여줍니다.
나만의 DI 프레임워크를 만들 때 예외를 RuntimeException으로 감싸는 것은, 사용자가 이 프레임워크를 사용하면서 발생할 수 있는 예외 상황에 대해 유연하게 대처할 수 있게 하며, 불필요한 예외 처리 코드를 줄여 코드를 더욱 깔끔하게 유지할 수 있게 하는 장점이 있습니다.
neta6603님께서도 예외 처리 구조를 설계할 때 이런 점들을 고려하여 더 효율적인 코드를 작성하시길 바랍니다!