SpringMVC_통합 예외 처리

2233 단어 SpringMVC

사용처:


우리는dao,서비스,controller층에서 이상을 위로 던지면 DispatcherServlet에서 이상을 받아들여 전역 이상 처리 방법을 호출합니다

1. 비정상 처리 클래스 사용자 정의, Exception 계승

package com.mingde.custom;

@SuppressWarnings("all")
public class CustomException extends Exception {
		private String message;
		
		public CustomException(String message) {
			this.message=message;
		}

		public String getMessage() {
			return message;
		}
		public void setMessage(String message) {
			this.message = message;
		}
		
}

2. 전역 비정상 처리 기능 구현(인터페이스HandlerExceptionResolver 구현)

package com.mingde.custom;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

public class CustomExceptionResolver implements HandlerExceptionResolver {

	@Override
	public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object obj,
			Exception ex) {
		CustomException ce;
		//  ex       CustomException,        CustomException  ,    new      
		if(ex instanceof CustomException){
			ce=(CustomException)ex;
		}else{
			ce=new CustomException("    ");
		}
		//             
		request.setAttribute("message", ce.getMessage());
		try {
			//       ,         
			request.getRequestDispatcher("/WEB-INF/student/error.jsp").forward(request, response);
		} catch (ServletException | IOException e) {
			e.printStackTrace();
		}
		return new ModelAndView();
	}

}

3. SPringMVC.xml 파일 설정에서 상기 클래스를 설정합니다.


		

방식2:CustomExceptionResolver 클래스 앞에서 @Component 주석을 사용할 수 있습니다.전제는springmvc.xml 파일 설정에 주석 스캐너가 있어야 하며, 이 종류를 스캔할 수 있습니다

예: 제어층에서 이상 위로 던지기


만약'장삼'이 민감한 단어라면 데이터를 추가할 때 사용할 수 없습니다
if("  ".equals(st.getSname())){
			throw new CustomException("       ");
		}

좋은 웹페이지 즐겨찾기