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 ...
随机推荐
- [LINQ2Dapper]最完整Dapper To Linq框架(六)---多表联合与匿名类型返回
目录 [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询 [LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询 [LINQ2Dapp ...
- day6-作业(不完整)
# 1.用代码实现:利用下划线将列表的'每一个元素'拼接成字符串 li=['ndfj','dlfj',12434]# 注意是将元素与元素转换为字符串之间用_拼接,而不是将每个字符串进行拼接 li=[' ...
- Dubbo的应用
导语:Dubbo是阿里巴巴的一个分布式服务的开源框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000 ...
- PHP 7.4 新语法:箭头函数
短闭包,也叫做箭头函数,是一种用 php 编写的短函数.当向函数中传递闭包时,这个功能是非常有用的,比如使用 array_map 或是 array_filter 函数时. 译者注:PHP7.4 计划于 ...
- Blob字段
在oracle中有一个特殊的字段类型Blob,Blob是指二进制大对象也就是英文Binary Large Object的缩写: 通过sql取出后,需要进行特殊处理.而我是这样玩的: 1.通过sql查询 ...
- 附009.Kubernetes永久存储之GlusterFS独立部署
一 前期准备 1.1 基础知识 Heketi提供了一个RESTful管理界面,可以用来管理GlusterFS卷的生命周期.Heketi会动态在集群内选择bricks构建所需的volumes,从而确保数 ...
- react-router重定向
① ②通过this.props重定向
- 如何在C++中使用boost库序列化自定义class ?| serialize and deserialize a class in cpp with boost
本文首发于个人博客https://kezunlin.me/post/6887a6ee/,欢迎阅读! serialize and deserialize a class in cpp Guide how ...
- python3 之 函数传参
一.可变对象与不可变对象 在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象. 不可变类型:变量赋值 a=5 后 ...
- 【集训Day1 测试】选择课题
选择课题(bestproject) [问题描述] Robin 要在下个月交给老师 n 篇论文,论文的内容可以从 m 个课题中选择.由于课题数有限,Robin 不得不重复选择一些课题.完成不同课题的论文 ...