springmvc之异常处理ResponseStatusExceptionResolver
时间:2022-07-23
本文章向大家介绍springmvc之异常处理ResponseStatusExceptionResolver,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
直接看例子:
在java中:
@RequestMapping("/testResponseStatusExceptionResolver")
public String testResponseStatusExceptionResolver(@RequestParam("i") Integer i) {
if(i == 13) {
throw new UserNameNoMatchPassword();
}
System.out.println("ResponseStatusExceptionResolver执行...");
return "success";
}
定义自己的异常类:UserNameNoMatchPassword.java
package com.gong.springmvc.test;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value=HttpStatus.FORBIDDEN,reason="用户名和密码不匹配")
public class UserNameNoMatchPassword extends RuntimeException {
/**
*
*/
private static final long serialVersionUID = 1L;
}
使用ResponseStatus注解标注,value表示状态码,reason表示抛出异常的原因。
index.jsp
<a href="testResponseStatusExceptionResolver?i=10">testResponseStatusExceptionResolver</a>
启动服务器之后:
点击:
将i=10改为i=13并刷新:
显示自己定义的异常状态码和相关信息。
当然, ResponseStatus不仅可以对类进行注解,也可以对方法进行注解。比如我们这样做:
@ResponseStatus(reason="测试",value=HttpStatus.NOT_FOUND)
@RequestMapping("/testResponseStatusExceptionResolver")
public String testResponseStatusExceptionResolver(@RequestParam("i") Integer i) {
if(i == 13) {
throw new UserNameNoMatchPassword();
}
System.out.println("ResponseStatusExceptionResolver执行...");
return "success";
}
运行服务器之后并点击:
在控制台可以看到:
目标方法的确是执行了,但是我们在方法上定义了ResponseStatus注解,因此会抛出异常并显示相关信息。
这就是ResponseStatus注解修饰方法和修饰类的作用以及他们之间的不同。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- [翻译]Pexels免费图片API文档
- 如何搭建一个高可用的服务端渲染工程
- [Go] Golang练习项目-GO语言实现插入排序
- vue3+webpack项目搭建实验
- HTML中p标签中插入div标签会发生什么
- K8S 在有赞 PaaS 测试环境中的实践
- Netty高级篇
- SQL工具集-查询会话等待
- 哈工大李志军操作系统实验1
- 有赞推荐系统关键技术
- 8086汇编格式
- React 中 getDerivedStateFromProps 的三个场景
- Java7的try-with-resources声明(转)
- 聊聊java中的哪些Map:(三)HashMap中的Iterator和Spliterator
- 聊聊java中的哪些Map:(四)LinkedHashMap源码分析