Spring MVC 处理异常
SpringMVC处理异常:
1 使用@ExceptionHandler注解
只有ModelAndView可以携带错误信息
@ExceptionHandler
public ModelAndView handleException(Exception ex) {
System.out.println("出现异常:" + ex);
ModelAndView mv = new ModelAndView();
mv.setViewName("error");//转到error.jsp
mv.addObject("exception", ex);
return mv;
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true"%>
<!-- 打印异常信息 -->
<%=exception.getMessage() %>
${exception.message}
2 使用@ExceptionHandler处理特定类型的异常
public class LackParamException extends ServletException{
private static final long serialVersionUID = 1L;
public LackParamException() {
super("缺少参数");
}
public LackParamException(String msg) {
super(msg);
}
}
@ExceptionHandler(LackParamException.class)
public ModelAndView handleException(Exception ex) {
System.out.println("出现异常:" + ex);
ModelAndView mv = new ModelAndView();
mv.setViewName("error");
mv.addObject("exception", ex);
return mv;
} @RequestMapping("test_exception")
public String testException(String str) throws LackParamException {
if(StringUtils.isEmpty(str)) {
throw new LackParamException();
}
return "success";
}
3 使用@ControllerAdvice织入全局异常
//异常切面:将本类内部的@ExceptionHandler方法织入到所有的@RequestMapping方法
@ControllerAdvice
public class MyExceptionHandler {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception ex) {
System.out.println("出现全局异常:" + ex);
ModelAndView mv = new ModelAndView();
mv.setViewName("error");
mv.addObject("exception", ex);
return mv;
}
}
<!-- 扫描异常处理 -->
<context:component-scan base-package="com.roxy.springmvc.exception">
</context:component-scan>
Spring MVC 处理异常的更多相关文章
- Spring MVC处理异常的4种方式
http://blog.csdn.net/ufo2910628/article/details/40399539 http://my.oschina.net/CandyDesire/blog/3333 ...
- Spring MVC 处理异常的3种方式
使用Spring MVC开发的博客网站时,遇到了如何处理业务层抛出的异常的问题,查阅到了spring官方博客-spring MVC中异常的处理,以下将会以登录模块为示例. 愚蠢的处理方式 处理异常遵循 ...
- Spring mvc 简单异常配置jsp页面
原文出处:http://howtodoinjava.com/spring/spring-mvc/spring-mvc-simplemappingexceptionresolver-example/ 这 ...
- Spring MVC全局异常后返回JSON异常数据
问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...
- Spring MVC 单元测试异常 Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file
Sping 3.2.8.RELEASE + sping mvc + JDK 1.8运行异常. java.lang.IllegalStateException: Failed to load Appli ...
- Spring MVC的异常统一处理方法
我们经常需要统一配置项目的异常处理,又希望统一处理异常代码,同时不侵入原有的正常代码.我们可以通过以下三种方式实现统一处理项目的自定义异常. 通过SimpleMappingExceptionResol ...
- Spring MVC报异常:org.springframework.web.util.NestedServletException: Request processing failed
在使用SpringMVC绑定基本类型(如String,Integer等)参数时,应通过@RequestParam注解指定具体的参数名称,否则,当源代码在非debug模式下编译后,运行时会引发Handl ...
- 部署项目到linux中报Spring MVC报异常:org.springframework.web.util.NestedServletException: Request processing failed
@RequestMapping(value = "/security/login", method = RequestMethod.POST) public ModelAndVie ...
- Spring MVC处理异常有3种方法
1.使用 SimpleMappingExceptionResolver 实现异常处理 <bean class="org.springframework.web.servlet.hand ...
随机推荐
- day1 python学习
Python的分类 编译型:一次性,将全部程序编译成二进制文件,然后再运行. 有点:执行效率高 缺点:开发效率低,不能跨平台使用. 解释型:当你程序运行时,一行一行的解释,并运行 优点:开发效率高,可 ...
- 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
将两个数组中的内容相互交换,必须是两个数组的内容一样大小. 思路: 结合两个整型变量之间的交换,同样可以用于内容一样大的数组.用异或关系相互交换. #include<stdio.h> in ...
- ES查询之刨根问底
昨天有一个需求,就是想要根据某个网关url做过滤,获取其下面所有的上下文nginx日志:如果直接"query":"https://XXX/YYY/ZZZ"发现有 ...
- LOJ 2736 「JOISC 2016 Day 3」回转寿司 ——堆+分块思路
题目:https://loj.ac/problem/2736 如果每个询问都是 l = 1 , r = n ,那么每次输出序列的 n 个数与本次操作的数的最大值即可.可以用堆维护. 不同区间的询问,可 ...
- Eclipse配置问题
1.eclipse中通过search打开第二个文件时第一个文件自动关闭问题: 解决方案: window-preferences-general-search找到第一行的一个选项 reuse edit ...
- JQuery 树状结构 jQuery-treeview.js 插件
由简入繁实现Jquery树状结构 在项目中,我们经常会需要一些树状结构的样式来显示层级结构等,比如下图的样式,之前在学.net的时候可以直接拖个服务端控件过来直接使用非常方便.但是利用Jquery的一 ...
- 基于MVC4+EasyUI的Web开发框架形成之旅(7)--权限控制
我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大概介绍了基于MVC的Web开发框架的权限控制总体思路.其中的权限控制就是分为“用户登录身份验证” ...
- VS未能正确加载包
这个方法同样适用于多个版本的VS 首先关闭VS进这里:C:\Users\用户名\AppData\Roaming\Microsoft\VisualStudio\11.0(2012是11.0,根据你的VS ...
- 弄清SDI显示工程中的每一个信号,每一个逻辑
弄清SDI显示工程中的每一个信号,每一个逻辑 1. FIFO外部逻辑控制 FIFO的读和写在不同的时钟域,所以读和写的控制逻辑应当分开写在不同的两个always块语句中. 2.播出端复位信号的产生 : ...
- 阅读<SMPTE 274M-2005 1920X1080>笔记
阅读<SMPTE 274M-2005 1920X1080>笔记 1.1080i blank field 2.blank and active line timing Analog Digi ...