예외처리
-
Grpc + Spring : 예외 처리 구현Spring 2024. 9. 22. 12:06
이번에는 grpc 서비스의 예외처리를 구현하는 방법을 작성해보고자 한다. grpc service : 특정 예외 메세지를 담아 지정된 예외로 발생하기 기존 rest 형식과 동일하게 grpc 서비스도 @GrpcExceptionHandler를 이용해서 예외 처리를 구현할 수 있다. 참고 : https://yidongnan.github.io/grpc-spring-boot-starter/en/server/exception-handling.html @GrpcAdvicepublic class GrpcExceptionAdvice { @GrpcExceptionHandler public Status handleInvalidArgument(IllegalArgumentException e) { ..
-
인증 예외 처리 문제 해결 (1) - Filter와 InterceptorJAVA/Java 2023. 8. 20. 17:31
최근에 spring security를 이용한 인증 처리 과정을 구현하다가 리더님께 다음의 코드에서 예외처리가 예상한대로 동작하지 않을 것이라는 리뷰를 받았다. 내가 구현한 예외처리 코드를 예시로 보자면 예외 발생시 Controller Advice에서 예외를 정해진 ErrorResponse의 타입으로 반환하는 코드였다. @ControllerAdvice class ApiControllerAdvice { @ExceptionHandler(Exception::class, RuntimeException::class) fun exceptionHandle(exception: Exception): ResponseEntity { val standardError = ErrorResponse.of(exception) retu..
-
에러 페이지 반환하기 (Feat.ErrorController)Spring 2022. 8. 29. 16:25
과제제출형 면접을 진행하면서 예외처리는 모두 GlobalExceptionHandler(ControllerAdvice)에서 처리가 되도록 설정하였다. 그러나 웹상에서 잘못된 경로로 입력하여 들어갈 경우에는 가장 기본적인 예외인 whiteLabel 에러 페이지가 나타나고 이에 대해 왜 그런가 하는 질문을 받게 되었으나 답변을 제대로 하지 못하였다 😭. 이 질문의 의도는 ErrorController의 처리 방법에 대해서 묻는 질문으로 서블릿 컨테이너에서 등록된 서블릿에서 요청처리를 하다가 오류가 발생하였지만 해당 서블릿에서 처리하지 못하고 서블릿 컨테이너까지 오류가 전파되었을 때 서블릿 컨테이너가 오류(ServletException으로 래핑)를 처리하기 위해 특정 경로(server.error.path)로 해당..
-
예외처리전략 ( ExceptionHandler ) 2Spring 2022. 1. 13. 18:17
https://dodop-blog.tistory.com/229 예외처리전략 (Exception Handler) 스프링에서 예외처리를 해주자. 예외발생 데이터타입을 일관된 형태로 생성해서 반응하도록 설정해준다. Error Response 먼저 예외의 형태를 잡아주는 클래스를 작성해준다. 메세지와 상태, 시간정 dodop-blog.tistory.com 이전 글에서 예외처리 전략을 이용하여 예외발생 데이터타입을 일관된 형태로 생성해서 반응하도록 설정하는 방법을 알았다. 그런데 여기서 모든 customException을 RuntimeException을 상속받아 중복되는 NotFoundException의 경우에도 모두 ControllerAdvice(GlobalExceptionHandler)에서 일일이 처리해주어야..
-
No serializer found for class Exception 에러 해결방법Spring 2021. 9. 5. 21:42
다대일, 일대일 관계의 설정에서 no serializer 에러가 나는 경우를 확인해보자. No serializer found for class Exception 엔티티 매핑 설정에서 fetch타입이 Lazy로 설정되어서 데이터가 아직 넘어오지 않았을 때 발생하는 에러이다. repository findby를 이용할때 발생되는 경우가 많다. 이러한 경우 해결방법이 3가지가 존재한다. ㉮ @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}), @JsonIgnore 어노테이션을 통해서 오류나는 매핑 엔티티 설정 바꿔주기 ㉯ LAZY설정된 엔티티를 EAGER로 바꿔서 가져오기 ㉰ application 파일안에 spring.jackson.serializat..
-
예외처리전략 (Exception Handler)Spring 2021. 9. 5. 20:25
스프링에서 예외처리를 해주자. 예외발생 데이터타입을 일관된 형태로 생성해서 반응하도록 설정해준다. Error Response 먼저 예외의 형태를 잡아주는 클래스를 작성해준다. 메세지와 상태, 시간정보를 담고있다. 발생된 에러를 다음의 형태로 반환할 것이다. import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor public class ErrorResponse { private String message; private int status; private long timestamp; } Global Exception Handler 발생된 예외 형태에 따라서 처리를 해주는 exception handler를 작성해준다. @Co..