velog에서 이전한 글 입니다.
ExceptionHandler
@ExceptionHandler(IllegalArgumentException.class)
public ResponseEntity<ExceptionResponseDto> postPatchHandle(IllegalArgumentException e){
HttpStatus httpStatus = HttpStatus.BAD_REQUEST;
ExceptionResponseDto response = new ExceptionResponseDto(httpStatus, e.getMessage());
return new ResponseEntity<>(response, httpStatus);
}
ExceptionHandler가 속해있는 controller에서 Handler에 명시된 예외 발생시 동작한다.
ResponseEntity는 response의 header, body, status를 설정할 수 있다.
전역 controller에서 예외처리를 하고 싶다면 @ControllerAdvice 같은 키워드를 공부해보자.
Optional
public class PostUpdateDto extends PostUserDto {
private String username;
private String password;
private Optional<String> title;
private Optional<String> contents;
}
public void update(PostUpdateDto requestDto){
if(Optional.ofNullable(requestDto.getTitle()).isPresent()) setTitle(requestDto.getTitle().get());
if(Optional.ofNullable(requestDto.getContents()).isPresent()) setContents(requestDto.getContents().get());
}
private static final Optional<?> EMPTY = new Optional<>(null);
public static <T> Optional<T> ofNullable(T value) {
return value == null ? (Optional<T>) EMPTY
: new Optional<>(value);
}
public boolean isPresent() {
return value != null;
}
Optional.ofNullable은 Optional로 value를 Wrapping하고 isPresent는 boolean을 반환한다.
why
java의 Optional chaining은 어떨까?
typescript의 Partial<T>
같은게 없을까?
lombok은 상속에 어떻게 적용될까?
'Spring' 카테고리의 다른 글
Spring boot DI 주입 방식 (필드/수정자/생성자) (0) | 2023.07.22 |
---|---|
스프링) Spring jpa 순환참조 (23-07-07) (0) | 2023.07.13 |
스프링) Spring boot dto/lombok/validation (23-06-30) (0) | 2023.07.13 |
스프링) Spring boot Request data (23-06-26) (0) | 2023.07.13 |
스프링) Spring boot 컨셉/ 자바17 (23-05-31) (0) | 2023.07.13 |