Sprintboot mvc项目异常处理详解(@ExceptionHandler、@ControllerAdvice、@Configuration等、优先级)

本文主要是介绍Sprintboot mvc项目异常处理详解(@ExceptionHandler、@ControllerAdvice、@Configuration等、优先级),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Sprintboot mvc项目异常处理

文章目录

  • Sprintboot mvc项目异常处理
    • 准备工作
    • 一、自定义错误页面
    • 二、@ExceptionHandler处理局部异常
      • 返回json格式
      • 验证局部性
      • 返回视图
    • 三、@ControllerAdvice+@ExceptionHandler处理全局异常
      • 返回Json格式
      • 返回视图
      • 优先级
    • 四、@Configuration+实现HandlerExceptionResolver接口
      • 设计实现
    • 五、SimpleMappingExceptionResolver
    • 优先级

springboot提供了五种异常处理机制,接下来我们来看看是哪些!


准备工作

搭建好环境之后,写一个会报错的controller,如下:

在这里插入图片描述


一、自定义错误页面

在上述的准备工作完备之后,我们进行请求
在这里插入图片描述


会由springboot自行转发至这个错误处理页面,那么如何自定义这个页面呢?

答案是:
在templates新建一个error页面,然后重启项目
在这里插入图片描述


再次请求
在这里插入图片描述


二、@ExceptionHandler处理局部异常

在上述的controller里面加上局部异常处理

返回json格式

在这里插入图片描述


再次请求异常
在这里插入图片描述


注意:这个异常处理仅对该类中的异常进行处理

验证局部性

下面来验证它的局部性:
在这里插入图片描述


请求toError2
在这里插入图片描述


可以看出上述定义的局部处理异常没有生效


返回视图

在这里插入图片描述


在这里插入图片描述


注:在@ExceptionHandler(Exception.class)中可以根据需求,选择Exception的类型,
如空指针异常返回空指针的信息,类型转换异常返回异常转换的信息


三、@ControllerAdvice+@ExceptionHandler处理全局异常

将上面的局部异常注释掉

返回Json格式

在这里插入图片描述


在这里插入图片描述


返回视图

同样它也是可以返回视图的
在这里插入图片描述


优先级

局部异常处理优先于全局异常处理,但是同一个范围不能存在两个相同的异常处理(一个范围内有两个对空指针进行捕获的处理,会跑不起来项目!!)


四、@Configuration+实现HandlerExceptionResolver接口

设计实现

在这里插入图片描述


在这里插入图片描述


五、SimpleMappingExceptionResolver

在这里插入图片描述


注:第五种异常处理来源自

优先级

类内的异常处理>
@ControllerAdvice+@ExceptionHandler>
@Configuration>
SimpleMappingExceptionResolver

这篇关于Sprintboot mvc项目异常处理详解(@ExceptionHandler、@ControllerAdvice、@Configuration等、优先级)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423700

相关文章

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Java中的JSONObject详解

《Java中的JSONObject详解》:本文主要介绍Java中的JSONObject详解,需要的朋友可以参考下... Java中的jsONObject详解一、引言在Java开发中,处理JSON数据是一种常见的需求。JSONObject是处理JSON对象的一个非常有用的类,它提供了一系列的API来操作J