본문 바로가기

Server Oriented/Spring

스프링 예외처리

https://springboot.tistory.com/25

- extends RuntimeException

- @ExceptionHandler

- @ControllerAdvice

 

https://yiyj1030.tistory.com/530

- 404, 500. 이런 에러는 WAS 나 WS/AS 에서 처리하도록 하는 것이 나을듯..


/src/main/java/도메인/common/exception/CommonExceptionHandler.java

 

@ControllerAdvice

@Slf4j

public class CommonExceptionHandler{

 

  @ExceptionHandler(Exception.class)

  public String handle(Exception e){

    log.info("<<< Exception : " +e.toString());

    return "error/commonException"; // /src/main/resources/templates/error/commonException.html

                                                             // 에러 메시지를 어느선 까지 사용자에게 보여줄 것인지 논의 필요

  }

 

  /*

  @ExceptionHandler(Exception.class)

  public String handle(Exception e, Model model){

    log.info("<<< Exception : " +e.toString());

    model.addAttribute("exception",e);  // model 에는 필터링 해서 전달할 사항만 담자

    return "error/commonException"; // /src/main/resources/templates/error/commonException.html

                                                             // 에러 메시지를 어느선 까지 사용자에게 보여줄 것인지 논의 필요

  }

  */

 

}


/src/main/resources/templates/error/commonException.html

예외 정보를 Model 에 담아 전달. 해커를 돕는 일이라서 보안상 바람직 하지 않음.

 

 

...

<div th:text="${execption.getMessage()}"></div>

<ul>

  <li th:each="stack:${exception.getStackTrace()}" th:text="${stack.toString()}"></li>

</ul>

...


form 태그 검증(validation) 처리

"스프링 JPA, 평범한 게시판 구현 DB 테이블 1개" 게시글 참조.