SpringBoot中优雅的处理异常-SpringBoot全局异常处理思路-《Java笔记》

admin 2025-10-19 04:58:27 编程 来源:ZONE.CI 全球网 0 阅读模式

Java SpringBoot 全局异常处理

问题

当项目上线时,用户访问某个url执行到某个controller方法的时候突然遇到异常,这时页面就会出现错误提示,这样用户体验不好。例如:

  1. @Controller
  2. public class UserControllerr {
  3. @ResponseBody
  4. @RequestMapping("/java")
  5. public String Test() {
  6. int a = 1 / 0; //代码执行到这里会抛出除0异常
  7. return "asd";
  8. }
  9. }

当用户执行http://localhost:8080/java 出现错误截图:2021-08-27-17-14-44-506448.png

思考

所以当出现异常的时候,能不能对异常进行统一处理,规定返回的json格式或是跳转到一个错误页面?

操作步骤

1、导入坐标2、创建一个异常处理类,类上方加上@ControllerAdvice注解 3、在定义的异常类里面创建一个方法,当出现异常之后的一些操作逻辑 4、在创建的方法上加上 @ExceptionHandler()5、在 @ExceptionHandler()里面写出要处理的异常类型,表示当出现什么样的异常,就执行该方法。6、@ExceptionHandler(Exception.class),表示出现所有的异常都执行该方法,所以这个就是局异常处理的方式@ControllerAdvice,是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法加一些逻辑处理。最常用的就是异常处理

操作代码如下

导入坐标

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-hateoas</artifactId>
  4. </dependency>

代码实现:

  1. @ControllerAdvice
  2. public class GlobalExceptionHandler {
  3. @ExceptionHandler(Exception.class)
  4. @ResponseBody
  5. public String excetionHandlerTest(){
  6. return "系统正在维护中!";
  7. }
  8. }

项目运行截图:SpringBoot全局异常处理思路 - 图2

总结

1、@ExceptionHandler(Exception.class)Exception.class,表示出现所有的异常都执行该方法。2、如果想具体的异常之行具体的逻辑,可以自定义异常,然后在@ExceptionHandler(“异常类”)括号中写入要处理的异常即可。

以太坊cppgolang区别 编程

以太坊cppgolang区别

以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
progolang 编程

progolang

Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
golangn个发送者 编程

golangn个发送者

Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
golang技能图谱 编程

golang技能图谱

从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
评论:0   参与:  6