인생 디벨로퍼

[Bank App] 5강 익셉션 핸들러 만들기 본문

Project/개인 Project - Bank App

[Bank App] 5강 익셉션 핸들러 만들기

뫄뫙뫄 2023. 6. 10. 02:33
728x90
반응형

커스텀 익셉션

package shop.mtcoding.bankapp.handler.ex;

import org.springframework.http.HttpStatus;

import lombok.Getter;

@Getter
public class CustomException extends RuntimeException {

    private HttpStatus status;

    public CustomException(String message, HttpStatus status) {
        super(message);
        this.status = status;
    }
}

익셉션 핸들러

package shop.mtcoding.bankapp.handler;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import shop.mtcoding.bankapp.handler.ex.CustomException;

@RestControllerAdvice
public class MyExceptionHandler {
    @ExceptionHandler(CustomException.class)
    public String basicException(Exception e) {
        StringBuilder sb = new StringBuilder();
        sb.append("<script>");
        sb.append("alert('" + e.getMessage() + "');");
        sb.append("history.back();");
        sb.append("</script>");
        return sb.toString();
    }

}
  • RestControllerAdvice :  여러 컨트롤러에서 발생하는 예외를 중앙에서 처리하고 일관된 방식으로 응답을 처리
  • StringBuilder : Java에서 문자열을 동적으로 조작하기 위한 클래스. 가변성(mutable)을 가지며, 문자열을 효율적으로 수정하고 연결할 수 있는 다양한 기능을 제공

테스트

테스트 성공!

728x90
반응형

'Project > 개인 Project - Bank App' 카테고리의 다른 글

[Bank App] 7강 로그인 만들기  (0) 2023.06.14
[Bank App] 6강 회원가입 만들기  (0) 2023.06.10
[Bank App] 4강 JSP 파일 세팅  (0) 2023.06.10
[Bank App] 3강 화면 구현  (0) 2023.06.09
[Bank App] 2강 모델링  (0) 2023.06.09