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 ...
随机推荐
- php 5.5使用 array_column的方法
<pre>php 5.5使用 array_column的方法</pre> <pre> public function array_column($input, $c ...
- 【Swift】UNNotificationServiceExtension
一.简介 An object that modifies the content of a remote notification before it's delivered to the user. ...
- 删除Linux的依赖库并进入救援模式恢复
删除Linux的依赖库并进入救援模式恢复 模拟一下依赖库文件被删,并进入救援模式恢复 系统:CentOS7 一.删除mv的依赖库文件 删除/lib64/libc.so.6 [root@centos7 ...
- tp5验证码的使用
<div><img id="verify_img" src="{:captcha_src()}" alt="验证码" on ...
- Cache地址映射
原理:程序访问局部性 在较短时间内由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内 时间:在一小段时间内,最近被访问过的程序和数据很可能再次被访问 ...
- 回声消除中的LMS和NLMS算法与MATLAB实现
自适应滤波是数字信号处理的核心技术之一,在科学和工业上有着广泛的应用领域.自适应滤波技术应用广泛,包括回波抵消.自适应均衡.自适应噪声抵消和自适应波束形成.回声对消是当今通信系统中普遍存在的现象.声回 ...
- 将 /u 转变为 utf-8 编码
将 /u 转变为 utf-8 编码 PHP实例: $result = {"errno":-1,"message":"\u8bbf\u95ee\u5fa ...
- hdu 5495 LCS (置换群)
Sample Input231 2 33 2 161 5 3 2 6 43 6 2 4 5 1 Sample Output24 C/C++: #include <map> #includ ...
- 【Java】面向对象之多态
生活中,比如动物中跑的动作,小猫.小狗和大象,跑起来是不一样的.再比如飞的动作,昆虫.鸟类和飞机,飞起来也是不一样的.可见,同一类的事物通过不同的实际对象可以体现出来的不同的形态.多态,描述的就是这样 ...
- cn_windows虚拟机配置
1.打开“VMware”,点击“主页”,点“创建新的虚拟机”: 2.会弹出一个“新建虚拟机向导”,类型选择“典型”,点击“下一步”: 3.选择“稍后安装操作系统”,点击“下一步”: 4.选择“Micr ...