RuntimeException
340
投稿した質問数 3
안녕하세요. 좋은 강의 올려주셔서 많이 배우고 있습니다ㅎㅎ
나만의 DI프레임워크 만들기 강의중 Exception이 발생했을 때 RuntimeException으로 감싸주시는데, 어떤 의도이신지 궁금합니다!
감싸는 이유가 있을까요??
回答 1
0
안녕하세요, 인프런 AI 인턴입니다.
우선 neta6603님께서 강의를 잘 보고 계신다니 정말 기쁘게 생각합니다ㅎㅎ
RuntimeException으로 예외를 감싸는 방식은 여러 가지 이유가 있습니다만, 주로 다음과 같은 이유들 때문입니다:
Unchecked Exception: RuntimeException은 Unchecked Exception에 속하기 때문에, 강제로 예외를 처리하지 않아도 됩니다. 이로 인해 개발자가 더 많은 컨트롤을 가질 수 있으며, 필요한 경우에만 예외 처리를 구현할 수 있습니다.
흐름 제어: 정의된 비즈니스 로직에서 예상치 못한 오류가 발생할 경우 체계적으로 이를 핸들링하여 프로그램의 흐름을 제어할 수 있습니다. 예를 들어, 예외를 감싸서 상위 레벨로 전파하거나, 특정 타입의 예외에 대해 일관된 처리를 수행할 수 있습니다.
원인 파악 용이성: 원래 발생한 예외를 RuntimeException으로 감싸게 되면, 스택 트레이스(stack trace)에 함께 예외 정보가 포함되어 원인 파악이 용이해집니다. 또한, 예외를 잡아내는 코드에 원본 예외를 넘겨주면 로그 등을 통해 추적하기가 편리해집니다.
런타임 의존성 감소: 자체적인 예외 체계를 마련함으로써, 특정 예외 처리에 대한 라이브러리 또는 API의 의존성을 줄일 수 있습니다. 이는 코드의 이식성 및 유지보수성을 높여줍니다.
나만의 DI 프레임워크를 만들 때 예외를 RuntimeException으로 감싸는 것은, 사용자가 이 프레임워크를 사용하면서 발생할 수 있는 예외 상황에 대해 유연하게 대처할 수 있게 하며, 불필요한 예외 처리 코드를 줄여 코드를 더욱 깔끔하게 유지할 수 있게 하는 장점이 있습니다.
neta6603님께서도 예외 처리 구조를 설계할 때 이런 점들을 고려하여 더 효율적인 코드를 작성하시길 바랍니다!
클래스 로더가 메소드 영역에 저장하는 것은 바이트코드인가요?
1
83
1
실제 개발 단계에서 이 같은 지식들을 적용할 기회가 있을까요?
0
102
1
코틀린 컴파일에 대해서
0
218
1
Annotation processor에서 element type을 제한했는데도 다른 타입으로 컴파일이 됩니다...이상하게도..
0
399
1
gradle 사용하시는 분 도움
4
763
1
CGLib를 따라 해보면서 문제점이 있으며, 해결법입니다. JDK17입니다.
6
865
0
Spring Data JPA 동적 프록시를 사용 질문
0
419
1
어노테이션 프로세서 활용 예와 관련해 질문 있습니다.
0
503
1
"자바 언어가 플랫폼에 독립적이다" 라는 것에 대해 옳게 이해했는지 궁금합니다!
1
1133
1
'클래스 로더' 강의에서 클래스 로딩을 설명할 때 잘못된 것 같아 질문드립니다.
3
1258
2
metaspace 질문드립니다.
2
394
0
소스컴파일시점에 MagicMojaProcessor가 사용되면 안되는이유
0
424
0
다이나믹 프록시에서 리플렉션이 어떻게 사용되는거죠?
0
468
1
다이나믹 프록시의 단점
0
350
0
new 와 constructor.newInstance();의 차이
0
663
0
두번 실행해야하는 이유
0
472
0
제가 설명한게 맞는지 봐주실 수 있나요?(jvm설명)
0
445
0
JIT 컴파일러와 인터프리터
1
1011
1
Method.invoke()
0
426
1
site 폴더내에 jacoco 폴더가 생기지 않습니다.
0
987
1
메모리 영역의 구조 질문
0
449
1
GC 설명부분 질문드립니다.
0
489
1
jit 와 인터프리터 질문
1
394
1
JVM 메모리 구조에 대해 공부하다가 질문 드립니다.
0
515
1

