MVC异常处理
处理局部异常
控制器:
@Controller
@RequestMapping("/ex")
public class ExceptionController { @ExceptionHandler
public ModelAndView exceptionHandler(Exception ex){
ModelAndView mv=new ModelAndView();
//保存异常变量
mv.addObject("ex",ex);
//添加错误页面
mv.setViewName("error");
System.out.println("出现了异常!");
return mv;
}
@RequestMapping("/hello") //设置处理器方法与用户请求的url之间的映射关系@WebServlet
public String toIndex() throws Exception {
if (==){
throw new Exception("我是异常哈哈哈哈");
}
return "index";
}
页面
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%--<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>--%>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--<c:forEach items="${error}" var="item">
<span>${item.defaultMessage}</span>
</c:forEach>--%>
${error.defaultMessage} </body>
</html>
结果

处理全局异常
ExceptionHandler类:
/*全局异常处理*/
@ControllerAdvice
public class ExceptionHandler { @org.springframework.web.bind.annotation.ExceptionHandler
public ModelAndView except(Exception e){
String message = e.getMessage(); //获取异常信息
ModelAndView mv=new ModelAndView("");
mv.addObject("message",message);
return mv;
}
}
控制器:
@RequestMapping("/hello") //设置处理器方法与用户请求的url之间的映射关系@WebServlet
public String toIndex() throws Exception {
if (==){
throw new Exception("我是异常哈哈哈哈");
}
return "index";
}
自定义异常
spring-mvc文件配置:
<!--异常处理-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="error"></property>
<property name="exceptionAttribute" value="ex"></property>
</bean>
控制器:
@RequestMapping("/getex")
@ResponseBody
public String getex(){
int num=/;
return "index";
}
结果:

自定义异常类
spring-mvc文件配置:
<!--异常处理-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="error"></property>
<property name="exceptionAttribute" value="ex"></property>
<property name="exceptionMappings">
<props>
<prop key="com.cmy.exception.UserName">UserName</prop>
<prop key="com.cmy.exception.Password">Password</prop>
</props>
</property>
</bean>
控制器:
@RequestMapping("/getex01")
public String getex01(String userName,String password) throws Exception {
if (!userName.equals("admin")){
throw new Exception("用戶民不正確!!!");
}
if (!password.equals("admin")){
throw new Exception("密碼不正確!!!");
}
return "index";
}
UserName.class异常类:
package com.cmy.exception;
public class UserName extends Exception {
public UserName() {
}
public UserName(String message) {
super(message);
}
}
Password.class异常类:
package com.cmy.exception; //自定义异常类
public class Password extends Exception { public Password() {
} public Password(String message) {
super(message);
}
}
页面:

结果:


自定义异常类实现(HandelExceptionResolver接口)
spring-mvc.xml文件配置:
<bean class="com.cmy.exception.HandelException">
HandelException.class异常类:
public class HandelException implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
ModelAndView mv=new ModelAndView();
mv.addObject("ex",e);
mv.setViewName("error");
if (e instanceof UserName){
mv.setViewName("UserName");
}
if (e instanceof Password){
mv.setViewName("Password");
}
return mv;
}
}
控制器:
@RequestMapping("/getex01")
public String getex01(String userName,String password) throws Exception {
if (!userName.equals("admin")){
throw new Exception("用戶民不正確!!!");
}
if (!password.equals("admin")){
throw new Exception("密碼不正確!!!");
}
return "index";
}
MVC异常处理的更多相关文章
- ASP.NET MVC异常处理
ASP.NET MVC异常处理方案 如何保留异常前填写表单的数据 ASP.NET MVC中的统一化自定义异常处理 MVC过滤器详解 MVC过滤器使用案例:统一处理异常顺道精简代码 ASP.NET MV ...
- 统一的mvc异常处理
mvc异常处理 using System; using System.Configuration; using System.Web.Mvc; using Infrastructure.Excepti ...
- NET MVC异常处理模块
一个简单的ASP.NET MVC异常处理模块 一.前言 异常处理是每个系统必不可少的一个重要部分,它可以让我们的程序在发生错误时友好地提示.记录错误信息,更重要的是不破坏正常的数据和影响系统运行. ...
- Spring MVC异常处理SimpleMappingExceptionResolver
Spring MVC异常处理SimpleMappingExceptionResolver[转] (2012-12-07 13:45:33) 转载▼ 标签: 杂谈 分类: 技术分享 Spring3.0中 ...
- Spring MVC异常处理代码完整实例
Spring MVC异常处理流程: 提供构造方法传值: 配置异常处理器的bean
- 一个简单的ASP.NET MVC异常处理模块
一.前言 异常处理是每个系统必不可少的一个重要部分,它可以让我们的程序在发生错误时友好地提示.记录错误信息,更重要的是不破坏正常的数据和影响系统运行.异常处理应该是一个横切点,所谓横切点就是各个部分都 ...
- Spring MVC异常处理详解
Spring MVC中异常处理的类体系结构 下图中,我画出了Spring MVC中,跟异常处理相关的主要类和接口. 在Spring MVC中,所有用于处理在请求映射和请求处理过程中抛出的异常的类,都要 ...
- ASP.NET mvc异常处理的方法
第一种:全局异常处理 1.首先常见保存异常的类(就是将异常信息写入到文件中去) public class LogManager { private string logFilePath = strin ...
- MVC 异常处理机制
方法一 :web.config配置文件的 system.web 接点下添加,若为On则不会将异常信息反馈到用户,而是友好的跳转到error.htm <customErrors mode=&quo ...
- Spring MVC异常处理
Spring Mvc 中异常处理,一般有两种解决办法: 一.利用org.springframework.web.servlet.handler.SimpleMappingExceptionResolv ...
随机推荐
- HTTPS加密流程理解
HTTPS加密流程 由于HTTP的内容在网络上实际是明文传输,并且也没有身份验证之类的安全措施,所以容易遭到挟持与攻击 HTTPS是通过SSL(安全套接层)和TLS(安全传输协议)的组合使用,加密TC ...
- China .NET Conf 2019-.NET技术架构下的混沌工程实践
这个月的8号.9号,个人很荣幸参加了China.NET Conf 2019 , 中国.NET开发者峰会,同时分享了技术专题<.NET技术架构下的混沌工程实践>,给广大的.NET开发小伙伴介 ...
- TRANK和VTP
需求:因为公司规模逐渐扩大,出现相同部门不同办公室的情况,老板提出新的要求:相同部门可以通信,不同部门不能通信. 利用vlan: 缺点:浪费材料,应用技术手段把两条交叉线变成一条. 因此,引进trun ...
- PHPExcel数据导入(含图片)
PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel. 首先下载压缩包: https://codeload.github.com/PHPO ...
- Linux(ubuntu)下切换root用户
输入命令su root切换用户,会提示输入root密码,如果不记得或者是没设置过,那么可以输入sudo passwd root来设置密码,会让你输入两次密码确认.输入完即可使用su root命令切换r ...
- 微擎JS资源请求 403
微擎JS资源请求 403 1.确认JS是否指定 type ==> text/javascript 2.确认src的路径是否正确,{MODULE_URL}项目的根目录带反斜杠 3.实例:(PS:t ...
- js json对象操作
参数解析: sourcelist是json对象[{id:1,name:张三}] targetlist是json对象[{roomid:1}] 返回值list是json对象[{id:1,name:张三, ...
- 串烧 JavaCAS相关知识
JMM与问题引入 为啥先说JMM,因为CAS的实现类中维护的变量都被volatile修饰, 这个volatile 是遵循JMM规范(不是百分百遵循,下文会说)实现的保证多线程并发访问某个变量实现线程安 ...
- 关于C# 语言
C# 语法高度重视表达,但学习起来也很简单轻松. 任何熟悉 C.C++ 或 Java 的人都可以立即认出 C# 的大括号语法. 通常情况下,了解上述任何一种语言的开发者可以在很短的时间内就开始使用 C ...
- C#连接SAP【生产系统与ERP对接】
企业如果上了ERP系统,比如SAP.用友.金蝶或者E10等等,只需要ERP里面提供相应的接口,则可以直接将PMC创建的工单信息抛转至 MTS 系统,当该工单生产完成之后,MTS 将完成数据回传至 ER ...