使用异常注解更方便

异常处理类

package demo15AnnotationException;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Created by mycom on 2018/3/30.*/
@Controller
public class ExceptionController {/*** 这个标签就代表有异常的话就走这个方法* @ExceptionHandler()* 这个括号中可以指定你想要的特定的异常类型,不写的话就是顶级异常* @param ex* @return*/@ExceptionHandlerpublic ModelAndView handlerException(Exception ex) {ModelAndView mv=new ModelAndView();mv.addObject("ex",ex);//保存的数据,在页面上用EL表达式展示错误信息//默认情况,下面两个条件都不满足走这个,mv.setViewName("error");//判断异常类型if(ex instanceof NameException){mv.setViewName("nameException");}if(ex instanceof AgeException){mv.setViewName("ageException");}return mv;}@RequestMapping("/first")public String doFirst(String name,int age) throws Exception {//根据异常的不同返回不同的页面if(!name.equals("admin")){throw new NameException("用户名异常");}if(age>60){throw new AgeException("年龄不符合");}return "success";}
}

两种异常类型:用户名异常和年龄异常

package demo15AnnotationException;/*** Created by mycom on 2018/3/30.*/
public class NameException extends Exception {public NameException() {super();}public NameException(String message) {super(message);}
}

package demo15AnnotationException;/*** Created by mycom on 2018/3/30.*/
public class AgeException extends Exception {public AgeException() {super();}public AgeException(String message) {super(message);}
}

配置文件中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--包扫描器--><context:component-scan base-package="demo15AnnotationException"></context:component-scan><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/error/"></property><property name="suffix" value=".jsp"></property></bean><!--注解驱动--><mvc:annotation-driven></mvc:annotation-driven></beans>

页面还是使用的上一篇博客的页面,可以自己定义页面

这种方式只能在本类中使用,在其他类中不能使用,所以我们可以吧处理异常的那个方法提到一个类中,其它类要使用的话就继承这个类,但是这样有一个弊端,在Java中只支持单继承,所以这个类就不能继承其他类了

转载于:https://www.cnblogs.com/my-123/p/8681171.html

SpringMVC(十三)异常注解相关推荐

  1. SpringMVC 实例 --非注解【过时的,留作回忆】

    练习项目:test SpringMVC 实例 --非注解,只用于学习理解.到了spring 3.0以后或许部分东西已经过时了,在实际工作中并不一定好用. 但对于理解SpringMVC的实现方式很有帮助 ...

  2. SpringMVC的常用注解

    SpringMVC的常用注解 1.@Controller @Controller注解在类上,表明这个类是Spring MVC 作为Controller(控制器)的角色.这样就可以将其 声明为Sprin ...

  3. lombok 的bug?lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败

    大家好,我是烤鸭:     lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败.     环境版本:         spring 5.x ...

  4. SpringMVC处理异常

    SpringMVC处理异常 @(SpringMVC)[springmvc, 异常] SpringMVC处理异常 SpringMVC单异常处理 SpitterController2 SpittleNot ...

  5. 20190928 On Java8 第二十三章 注解

    第二十三章 注解 定义在 java.lang 包中的5种标准注解: @Override:表示当前的方法定义将覆盖基类的方法.如果你不小心拼写错误,或者方法签名被错误拼写的时候,编译器就会发出错误提示. ...

  6. springMvc常用的注解有哪些?

    springMvc常用的注解有哪些? 1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象.分发处理器将会扫描使 ...

  7. 5.概念(maven,ssm,springMvc,spring,自定义注解,二级缓存,范式,事务,mysql,线程池,map,hashmap,redis,饿汉,懒汉)

    maven是啥: 1.Maven是一个项目管理和综合工具.Maven提供了开发人员构建一个完整的生命周期框架. 创建-导入jar报–编写配置文件-实现业务功能-测试-发布上线. 2.开发团队可以自动完 ...

  8. SpringMVC的常用注解(三)

    白发戴花君莫笑,岁月从不败美人. 愿,像你我一如既往地好看. 上一章简单介绍了SpringMVC的'两个蝴蝶飞,你好'的简单开发(二),如果没有看过,请观看上一章. 一. SpringMVC的常用注解 ...

  9. SpringMVC常用的注解

    最近在学习SpringMVC  以下是整理出来的笔记 .....待更新 1.Dispatcherservlet DispatcherServlet是前置控制器,配置在web.xml文件中的.拦截匹配的 ...

最新文章

  1. 登高自卑 | 我的PyTorch入门与实践笔记
  2. window下Nodejs的部署
  3. delphi 读取ini所有项_财务机器人真的会代替财务人员所有工作吗?
  4. jquery插件编写学习
  5. override覆盖
  6. NGINX-RTMP复杂度分析
  7. 注释嵌套注释_DIY注释
  8. linux定时scp脚本,linux expect 实现定时scp的任务
  9. 解决win7下PIL无法打开图片的问题
  10. OpenShift 4 之获取版本升级路径图
  11. Linux-环境变量的设置和查看
  12. 如何设置程序默认“以管理员身份运行”
  13. Extended VINS-Mono: 大规模户外环境进行绝对和相对车辆定位的系统性方法(IROS2021)...
  14. Java面试题大全(part_4)
  15. python实现大数定理
  16. 时光机穿梭(管理修改)
  17. 五大浏览器:chrome---Blink IE--Trident firebox--Gecko safari--Webkit opera--Blink
  18. 连锁酒店网络互联解决方案
  19. 2021Vivo千镜杯
  20. Stochastic Answer Networks for Machine Reading Comprehension读书笔记

热门文章

  1. 跟小廖一起学习Python正则表达式!
  2. k8s部署tomcat及web应用_k8s部署tomcat应用服务
  3. centos7安装docker 以及简单使用
  4. pythonspark实践_基于Python的Spark Streaming Kafka编程实践
  5. docker rabbitmq_Docker部署RabbitMQ集群
  6. linux+手机+翻页,在Android手机上实现阅读器的翻页效果
  7. android 单选按钮横置,input radio如何实现横向布局
  8. form表单属性名相同java_java – 将表单字段注入具有相同属性名称的多个bean中
  9. 非常详细GC学习笔记
  10. 报错,Unknown custom element: <DeviceVendorStatistics> - did you register the component correctly? For