ki-sd 님의 블로그
[2026-03-27] try-with-resources와 사용자 정의 예외(Custom Exception) 본문
복잡한 자원 해제 코드를 자동화하는 현대적인 문법과, 도메인에 특화된 에러를 직접 설계하는 방법을 익혔다.
1. try-with-resources (자원 관리의 자동화)
- 기존의 try-catch-finally 구조는 자원을 닫기 위한 코드가 본래의 로직보다 길어지는 가독성 저하를 유발했다.
- 자바 7부터 도입된 try-with-resources 구문을 사용하면, try(자원 할당) 괄호 안에 객체를 생성할 경우 예외 발생 여부와 상관없이 블록이 끝날 때 시스템이 알아서 close()를 호출해 준다. 단, 해당 객체가 반드시 AutoCloseable 인터페이스를 구현하고 있어야 한다는 내부 작동 원리를 확인했다.
2. 사용자 정의 예외(Custom Exception) 설계
- 자바가 기본적으로 제공하는 NullPointerException, ArithmeticException 등의 표준 예외만으로는 복잡한 비즈니스 로직(예: 잔액 부족, 아이디 중복 등)의 에러 상황을 섬세하게 표현하기 어렵다.
- Exception이나 RuntimeException 클래스를 상속받아 직접 나만의 예외 클래스를 정의하는 방법을 배웠다.
- 문제가 발생하는 상황에서 throw 키워드를 사용해 강제로 내가 만든 예외 객체를 던지고, 이를 호출한 곳으로 떠넘겨(throws) 비즈니스 로직과 에러 처리 로직을 깔끔하게 분리하는 고급 에러 핸들링 기술을 습득했다.
'JavaStudy' 카테고리의 다른 글
| [2026-03-31] Wrapper 클래스와 시간 API 처리에 대한 고찰 (0) | 2026.04.17 |
|---|---|
| [2026-03-30] java.lang 패키지 분석과 데이터 영속성(Persistence)의 경험 (1) | 2026.04.17 |
| [2026-03-26] 예외 처리 심화와 finally 블록의 자원 반납 (0) | 2026.04.17 |
| [2026-03-25] 인터페이스(Interface)와 예외 처리(Exception) 입문 (0) | 2026.04.17 |
| [2026-03-24] 다형성(Polymorphism)과 추상화(Abstraction)의 강력함 (0) | 2026.04.17 |
