일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- http 메시지 컨버터
- 프록시
- fielderror
- 코딩테스트
- objecterror
- 오버라이딩
- 의존관계
- 싱글톤
- java
- 추상클래스
- 인터페이스
- 서블릿
- 테스트코드
- equals()
- DI
- 참조변수
- HttpServletResponse
- 오블완
- @configuration
- 스프링컨테이너
- 코드트리
- 코드트리조별과제
- ocp
- 티스토리챌린지
- JSON
- 다형성
- 백준
- 스프링
- 김영한
- html form
- Today
- Total
목록TIL (147)
minOS
언체크 예외 활용런타임 예외 사용 변환 - 코드 - UncheckedAppTestpackage hello.jdbc.exception.basic;import lombok.extern.slf4j.Slf4j;import org.assertj.core.api.Assertions;import org.junit.jupiter.api.Test;import java.net.ConnectException;import java.sql.SQLException;@Slf4jpublic class UnCheckedAppTest { @Test void unchecked(){ Controller controller = new Controller(); Assertions.assertThatThrow..
체크 예외 활용언제 체크 예외를 사용하고 언제 언체크(런타임) 예외를 사용하면 좋을까?기본 원칙 두가지- 기본적으로 언체크(런타임) 예외를 사용하자.- 체크 예외는 비즈니스 로직상 의도적으로 던지는 예외에만 사용하자. ex) 계좌 이체 실패처럼 매우 심각한 문제는 개발자가 실수로 예외를 놓치면 안된다고 판단할 수 있다. 이 경우 체크 예외로 만들어 두면 컴파일러를 통해 놓친 예외를 인지할 수 있다체크 예외의 문제점체크 예외는 컴파일러가 예외 누락을 체크해주기 때문에 개발자가 실수로 예외를 놓치는 것을 막아준다. 그래서 항상 명시적으로 예외를 잡아서 처리하거나, 처리할 수 없을 때는 예외를 던지도록 `method() throws 예외`로 선언해야 한다.지금까지 이야기를 들어보면 체크 예외가 런타임 예외보다..
언체크 예외 기본 이해- `RuntimeException` 과 그 하위 예외는 언체크 예외로 분류된다.- 언체크 예외는 말 그대로 컴파일러가 예외를 체크하지 않는다는 뜻이다.- 언체크 예외는 체크 예외와 기본적으로 동일하다. 차이가 있다면 예외를 던지는 `throws` 를 선언하지 않고, 생략할 수 있다. 이 경우 자동으로 예외를 던진다.체크 예외 VS 언체크 예외- 체크 예외: 예외를 잡아서 처리하지 않으면 항상 `throws` 에 던지는 예외를 선언해야 한다- 언체크 예외: 예외를 잡아서 처리하지 않아도 `throws` 를 생략할 수 있다.package hello.jdbc.exception.basic;import lombok.extern.slf4j.Slf4j;import org.assertj.core..
체크 예외 기본 이해- Exception 과 그 하위 예외는 모두 컴파일러가 체크하는 체크 예외이다. 단 `RuntimeException` 은 예외로 한다.- 체크 예외는 잡아서 처리하거나, 또는 밖으로 던지도록 선언해야한다. 그렇지 않으면 컴파일 오류가 발생한다.체크 예외 전체 코드package hello.jdbc.exception.basic;import lombok.extern.slf4j.Slf4j;import org.assertj.core.api.Assertions;import org.junit.jupiter.api.Test;@Slf4jpublic class CheckTest { @Test void checked_catch(){ Service service = new Serv..
스프링 부트의 자동 리소스 등록스프링 부트가 등장하기 이전에는 데이터소스와 트랜잭션 매니저를 개발자가 직접 스프링 빈으로 등록해서 사용했다.그런데 스프링 부트로 개발을 시작한 개발자라면 데이터소스나 트랜잭션 매니저를 직접 등록한 적이 없을 것이다.데이터소스와 트랜잭션 매니저를 스프링 빈으로 직접 등록 @Bean DataSource dataSource(){ return new DriverManagerDataSource(URL,USERNAME,PASSWORD); } @Bean PlatformTransactionManager transactionManager(){ return new DataSourceTransaction..
트랜잭션 AOP 적용트랜잭션 AOP를 사용하는 새로운 서비스 클래스MemberServiceV3_3package hello.jdbc.service;import hello.jdbc.domain.Member;import hello.jdbc.repository.MemberRepositoryV3;import lombok.extern.slf4j.Slf4j;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.Transactional;import org.springframework.transaction.support.TransactionTemplate;import ..