전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (171)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Springboot/블로그만들기

[Springboot] 블로그 만들기 (14)_Exception처리_에러페이지

2023. 11. 24. 22:18

DB

 

값이 존재하지 않는 Id가 1인 데이터를 삭제해보자.

 

Controller

@GetMapping("/dummy/user/{id}")
public User detail(@PathVariable int id) {
    User user = userRepository.findById(id).orElseThrow(new Supplier<IllegalArgumentException>() {
        @Override
        public IllegalArgumentException get() {
            return new IllegalArgumentException("해당 유저는 없습니다. id : " + id);
        }
    });
    return user;
}

 

http://localhost:8001/blog/dummy/user/1 로 1번 데이터 삭제를 요청해보자

 

당연히 아래와 같이 오류페이지가 StackTrace와 함께 나온다.

그런데 클라이언트 입장에서 저런 오류메시지가 나온다면 불필요하기도 하고 무섭지 않을까.. 

StackTrace를 제외하고 간단하게 오류 문구만 보여지게 해보자!!


먼저 Package를 생성하고 아래와 같이 Class파일을 만들어주자

 

GlobalExceptionHandler.java --> 예외가 발생했을때 이 파일을 타게 된다.

package com.lwj.blog.handler;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;

@ControllerAdvice // 어느파일에서나 Exception이 발생해도 이 함수를 타게하기 위한 어노테이션
@RestController
public class GlobalExceptionHandler {

	@ExceptionHandler(value=IllegalArgumentException.class)
	public String handleArgumentException(IllegalArgumentException e) {
		return "<h1>" + e.getMessage() + "</h1>";
	}
}

 

근데 이렇게 문자열을 반환하는거 말고 오류가 발생했을때 jsp파일을 요청하고 싶다면

아래와 같이 @RestController를 지우고 반환값으로 jsp파일명을 써주면 된다.  

@ControllerAdvice // 어느파일에서나 Exception이 발생해도 이 함수를 타게하기 위한 어노테이션
public class GlobalExceptionHandler {

	@ExceptionHandler(value=IllegalArgumentException.class)
	public String handleArgumentException(IllegalArgumentException e) {
		return "error"; // /WEB-INF/views/error.jsp 로 요청한다
	}
}

참고 유튜브 (메타코딩님 강의)

https://youtu.be/qYxWWWVpJkA?si=b5NO0_FzHuhJ9trY

 

    'Springboot/블로그만들기' 카테고리의 다른 글
    • [Springboot] 블로그 만들기 (16)_로그인, 회원가입 화면
    • [Springboot] 블로그 만들기 (15)_메인페이지구현
    • [Springboot] 블로그 만들기 (13)_Delete 테스트, Exception처리
    • [Springboot] 블로그 만들기 (12)_Update 테스트
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바