표준 예외를 사용하라 숙련된 프로그래머는 미숙한 프로그래머보다 더 많은 코드를 재사용한다고 합니다. 예외도 마찬가지로 재사용하는 것이 좋으며, 자바 라이브러리는 대부분 API에서 쓰기에 충분한 수의 예외를 제공하고 있습니다. 💡표준 예외를 사용하면 얻는 이점 다른 개발자가 익히고 사용하기 쉬워집니다. 개발자 입장에서는 낯선 프로그램이라 할지라도 익숙한 표준 예외를 던져준다면 읽기 쉬울 것입니다. 예컨대 NotFoundMyChildrenException보다는 IllegalStateException이 조금 더 익숙할 것입니다. 예외 클래스 수가 적을수록 메모리 사용량도 줄고 클래스를 적재하는 시간도 적어집니다. 💡Exception, RuntimeException, Throwable, Error는 직접 재사용..
필요 없는 검사 예외 사용은 피하라 검사 예외(Checked Exception)를 싫어하는 프로그래머가 많지만 제대로 사용한다면 API와 프로그램의 질을 높을 수 있습니다. 개인적으로 싫어하는 유형은 필자처럼 try-catch 블럭으로 인해 혹여나 지저분해지지 않을까? 생각할 수도 있을거 같습니다. 하지만 검사 예외(Checked Exception)를 잘 사용한다면 발생한 문제를 프로그래머가 처리하여 안전성을 높일 수 있습니다. 💡예시 아래 예제 코드에서는 CheckedException을 발생시키는 메서드를 호출하여 main 메서드에서 try-catch하거나 혹은 throws를 사용하여 상위 호출자로 던져야 합니다. public static void main(String[] args) { ThrowChe..
복구할 수 있는 상황에는 검사예외를, 프로그래밍 오류에는 런타임 예외를 사용하라 💡 문제 상황을 알리는 방법 Checked Exception UnChecked Exception Error 💡 Checked Exception과 Unchecked Exception을 구분 하는 기본 규칙 호출하는 쪽에서 복구하리라 여겨지는 상황이라면 Checked Exception을 사용해야 합니다. Checked Exception을 던지면 호출자가 그 예외를 try-catch로 잡아 처리하거나 throws를 해야합니다. 아래 코드에서는 FileInputStream은 호출하는 쪽에서 예외가 발생하면 알아서 복구해~ 라고 말하고 있으니 try-catch로 감싸거나 throws를 해야합니다. public void checkedE..
예외는 진짜 예외 상황에만 사용하라 🧨 잘못된 예외의 사용 방법 아래의 코드를 보고 무슨 일을 하는 코드인지 가늠하기가 힘듭니다. while 문을 무한으로 순회하면서 range 배열의 각 요소마다 climb() 메서드를 호출하는구나, 배열의 범위 밖의 요소를 찾으면 예외가 발생하고 끝나는구나라고 생각할 수 있습니다. 이 코드는 성능 향상,,,?을 위해 작성했다고 생각할 수 있겠지만, 표준 관용구(for-loop)보다 훨씬 느리다고 합니다. try { int i = 0; while(true) { range[i++].climb(); } } catch (ArrayIndexOutOfBoundsException e) { // ... } 💡 리펙토링 아래처럼 사용하면 try-catch문을 사용하지 않아도 됩니다. ..
- Total
- Today
- Yesterday
- microkernel architecture
- service based architecture
- 트랜잭셔널 아웃박스 패턴 스프링부트
- 레이어드 아키텍처란
- pipe and filter architecture
- spring boot excel download oom
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot poi excel download
- 람다 표현식
- polling publisher spring boot
- transactional outbox pattern
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- spring boot excel download paging
- pipeline architecture
- redis sorted set으로 대기열 구현
- spring boot redis 대기열 구현
- 자바 백엔드 개발자 추천 도서
- spring boot redisson sorted set
- redis sorted set
- space based architecture
- spring boot redisson 분산락 구현
- java ThreadLocal
- 공간 기반 아키텍처
- java userThread와 DaemonThread
- spring boot redisson destributed lock
- redis 대기열 구현
- @ControllerAdvice
- transactional outbox pattern spring boot
- 서비스 기반 아키텍처
- spring boot 엑셀 다운로드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |