全局异常处理器|学习笔记

简介: 快速学习全局异常处理器

开发者学堂课程【SpringBoot 实战教程 全局异常处理器】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10792


全局异常处理器


内容介绍:

定义

二、案例

 

一、定义

springboot 中的异常处理器使用的是aop的思想在学习 springaop 时学到异常操作通知前置通知后置通知环绕通知其中还有一个中异常抛出通知而 springboot 利用 aop 思想进行异常的处理

 

二、案例

1、创建一个全局异常处理类,命名为 GlobalExceptionHandler异常实际上是作为通知介入的所以要使用注解 ControllerAdviceAdvice 通知的意思当发生异常时对异常的处理方式写一个功能比如叫 handler 处理异常如下:

//全局异常处理器

@ControllerAdvice

public class GlobalExceptionHandler {

@ExceptionHandler (Exception. class)

指明处理哪些异常把所有异常都处理

@ResponseBody

public Map<String, Object> allExceptionHandler (

Exception exception) throws Exception

当发生异常时返回相关的异常信息这样就可以接收到发生异常时异常的对象就可以得到异常信息

{

Map<String, Object> map = new

HashMap<String, Object>() ;

把异常信息封装到map中

map. put ("errorCode", 500) ;

发生异常时显示错误码

map.put ("errorMsg", exception. toString() ) ;

显示异常信息会发生不同的异常具体是什么异常已经被 Exception 接收到所以可以从这里面获取异常信息

return map;

最后返回异常信息

}

}

2、创建 controller命名为 testcontroller

3、加注解写一个功能制造一些异常最后返回字符串当请求 Controller 时执行int a = 5/0这句话就会发生异常这时全局处理器会捕获到这个异常返回格式的异常信息

@Controller

public class TestController {

@RequestMapping ("/ show")

@ResponseBody

PublicString show ()

{

int a = 5/0;

return " show" ;

}

}

4、这两个类 GlobalExceptiorajandler.java,TestController.java 都在com.qianfeng.controller 这个包里在启动程序中已经扫描 com. qianfeng. controller 包所以都会创建它们的对象

5、启动访问路径是 show现在是附属为0。

image.png

6、换成 int[]arr=newint[3];System. out. println (arr[3])再进行访问还是访问controller这时就出现了下标越界

image.png

这就是 springboot 中进行全局异常处理器的定义方式

 

相关文章
|
设计模式 Java UED
Java全局异常处理器实现
Java全局异常处理器是一种处理Java程序中未被捕获的异常和错误的机制。它可以捕获在程序中所有代码块中发生的异常和错误,包括未被try-catch块捕获的异常和错误。通过设置全局异常处理器,可以在程序发生异常或错误时进行特定处理,如记录日志、提供友好的错误信息、发送警报等。全局异常处理器需要实现Thread.UncaughtExceptionHandler接口,并在程序启动时通过Thread.setDefaultUncaughtExceptionHandler()方法设置。
313 1
|
6月前
|
JSON 前端开发 Java
深入理解 Spring Boot 中日期时间格式化:@DateTimeFormat 与 @JsonFormat 完整实践
在 Spring Boot 开发中,日期时间格式化是前后端交互的常见痛点。本文详细解析了 **@DateTimeFormat** 和 **@JsonFormat** 两个注解的用法,分别用于将前端传入的字符串解析为 Java 时间对象,以及将时间对象序列化为指定格式返回给前端。通过完整示例代码,展示了从数据接收、业务处理到结果返回的全流程,并总结了解决时区问题和全局配置的最佳实践,助你高效处理日期时间需求。
697 0
|
9月前
|
监控 小程序 前端开发
微信小程序如何安装使用第三方包
本文档详细介绍了微信小程序开发中引入和使用第三方包的步骤。
965 3
|
JavaScript Java
Java 将Markdown文件转换为Word和PDF文档
【7月更文挑战第5天】Java中使用`Spire.Doc for Java`库可方便地将Markdown转换为Word或PDF。基本步骤包括导入模块,创建`Document`对象,加载Markdown文件,然后保存为目标格式(`.docx`或`.pdf`)。若遇到`Invalid UTF-8 stream`错误,需确保Markdown文件是UTF-8无BOM编码。页面设置可通过`PageSetup`类调整。注意,实际应用会依据具体需求和环境有所调整。
1674 6
|
11月前
|
前端开发
CSS transition过渡属性详解
本文介绍了CSS中`transition`属性的作用、用法及实例。`transition`用于在元素属性变化时添加平滑过渡动画,通过设置`transition-property`、`transition-duration`、`transition-timing-function`和`transition-delay`等属性值,可以精细控制过渡效果。文末提供了HTML示例代码,展示了如何使用`transition`实现鼠标悬停时背景颜色的平滑变化。
464 1
|
关系型数据库 MySQL Linux
Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
【8月更文挑战第23天】Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
923 1
|
存储 安全 API
掌握 HTTP Authorization 头:关键知识点解析
在当今的互联网世界中,安全性贯穿于 web 应用的每个方面,HTTP Authorization 头的使用在这个过程中扮演着不可或缺的角色。它是 HTTP 请求中的一个重要部分,用来在客户端和服务器之间安全地传输认证信息。用途广泛,无论是浏览器还是其他客户端应用,都依赖它来验证用户的访问权限。本文旨在详细解读 HTTP Authorization 头的定义、使用方式以及不同的认证机制。
|
缓存 JavaScript
vue组件强制刷新的5种方案
vue组件强制刷新的5种方案
1093 2
|
前端开发 小程序 JavaScript
uniapp api uni.request讲解
uniapp api uni.request讲解
1139 1
|
安全 Java 数据库
第4章 Spring Security 的授权与角色管理(2024 最新版)(下)
第4章 Spring Security 的授权与角色管理(2024 最新版)
728 0