에러 핸들러 및 뷰 추가

Yuri Lee·2020년 12월 15일
0

error view

클라이언트가 잘못된 요청을 보내오는 경우 404 에러 페이지로 보낸다.

잘못된 요청의 예

  • 없는 스터디 페이지 조회 시도
  • 없는 프로필 페이지 조회 시도
  • 무작위 이벤트 조회 시도
  • 허용하지 않는 요청 시도
    • 이미 종료된 스터디의 모임 생성 시도
    • 이미 종료된 모임에 참가 신청 시도
    • 관리자 권한이 없는 스터디 수정 시도
    • ...

Spring @ControllerAdvice 어노테이션을 이용한 에러 처리

어떤 요청으로 사용자들이 계속 실수를 하는가 등을 파악하기 위해서는 에러 핸들러를 만드는 경우를 필요로 할 수 있다.

package com.yuri.studyolle.modules.main;

import com.yuri.studyolle.modules.account.Account;
import com.yuri.studyolle.modules.account.CurrentAccount;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

import javax.servlet.http.HttpServletRequest;

@Slf4j
@ControllerAdvice
public class ExceptionAdvice {

    @ExceptionHandler // 어떤 사용자, 어떤 요청으로 보내는가
    public String handleRuntimeException(@CurrentAccount Account account, HttpServletRequest req, RuntimeException e) {
        if (account != null) {
            log.info("'{}' requested '{}'", account.getNickname(), req.getRequestURI());
        } else { // account가 없다고 하더라도 !
            log.info("requested '{}'", req.getRequestURI());
        }
        log.error("bad request", e); // error 로깅
        return "error"; // 만들어놓은 error 페이지로 보내기
    }
}

어떤 사용자가 어떤 url로 요청을 했는지 로그를 볼 수 있다.


출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발
https://tram-devlog.tistory.com/entry/Spring-ControllerAdvice-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%97%90%EB%9F%AC-%EC%B2%98%EB%A6%AC
https://freefrontend.com/html-css-404-page-templates/

profile
Step by step goes a long way ✨

0개의 댓글