spring-mvc 异常处理

页面处理异常处理方法:

方法一:@ControllerAdvice + @ExceptionHandler

@ControllerAdvice
public class MyExceptionController {

	@ExceptionHandler(value={Exception.class})
	public ModelAndView excepationHadler(Exception ex){
		ModelAndView mv	= new ModelAndView();
		
		StringWriter writer = new StringWriter();
		PrintWriter s = new PrintWriter(writer);
		ex.printStackTrace(s);
		mv.addObject("exception",writer.toString());
		mv.setViewName("error");
		return mv;
	}
}

更多信息抛出业务异常参考:https://blog.csdn.net/kinginblue/article/details/70186586

方法二:SimpleMappingExceptionResolver,采用spring-mvc 自带的异常处理,需要在xml配置bean注入。

	<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<property name="exceptionMappings">
			<props>
				<prop key="java.lang.NullPointerException">error</prop>
			</props>
			
		</property>
	</bean>

方法三:继承HandlerExceptionResolver +配置自定义实现的类

public class MyExcetionHandler implements HandlerExceptionResolver{

	@Override
	public ModelAndView resolveException(HttpServletRequest httpservletrequest,
			HttpServletResponse httpservletresponse, Object obj,
			Exception exception) {

		ModelAndView mv	= new ModelAndView();
		
		StringWriter writer = new StringWriter();
		PrintWriter s = new PrintWriter(writer);
		exception.printStackTrace(s);
		mv.addObject("exception",writer.toString());
		mv.setViewName("error");
		return mv;
	}

}


<bean class="com.mobile263.exception.MyExcetionHandler"></bean>

猜你喜欢

转载自blog.csdn.net/yingcly003/article/details/83275459