Spring教程之异常捕获方式

 更新时间:2025年05月09日 08:40:28   作者:terrybg  
这篇文章主要介绍了Spring异常捕获方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

概述

在Spring中,封装了全局异常捕获方法,方便我们处理和管理异常,捕获异常可以解决以下业务场景:

  1. 友好返回给用户提示。
  2. 记录日志方便排查问题
  3. 方便管理异常等

以下程序模拟在Controller中出现异常:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 全局异常捕获测试
 * @author terry
 * @version 1.0
 * @date 2022/1/6 14:29
 */
@RestController
@RequestMapping("/gloab")
public class GloabExceptionController {

    @RequestMapping("/test1")
    public String test1(){
        // 模拟异常
        int i = 1/0;
        return "success";
    }
}

打印输出

{
    "timestamp": "2022-01-06T06:51:26.538+00:00",
    "status": 500,
    "error": "Internal Server Error",
    "message": "",
    "path": "/gloab/test1"
}

出现问题:

当发送异常之后,后续的代码都不执行了,而且返回的参数也不是我们需要的。

@RestControllerAdvice注解

@RestControllerAdvice和@ControllerAdvice都是全局捕获异常配置类,@RestControllerAdvice更适用于返回JSON数据,@ControllerAdvice返回JSON需要方法额外添加@ResponseBody。

@RestControllerAdvice
class GloabExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public String exceptionHandler(Exception e){
        System.out.println("ERROR: " + e.getMessage());
        return "error";
    }
}

打印输出

error

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL安装与idea的连接实现

    MySQL安装与idea的连接实现

    本文主要介绍了MySQL安装与idea的连接实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • SpringAOP切点函数实现原理详解

    SpringAOP切点函数实现原理详解

    这篇文章主要介绍了SpringAOP切点函数实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 简单了解Spring循环依赖解决过程

    简单了解Spring循环依赖解决过程

    这篇文章主要介绍了简单了解Spring循环依赖解决过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java原子操作CAS原理解析

    Java原子操作CAS原理解析

    这篇文章主要介绍了Java原子操作CAS原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SpringBoot定制三种错误页面及错误数据方法示例

    SpringBoot定制三种错误页面及错误数据方法示例

    Spring Boot提供的默认异常处理机制通常并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对Spring Boot全局异常进行统一定制,例如定制错误页面,定制错误数据等。本文主要介绍了SpringBoot三种自定义错误页面的实现,快来学习吧
    2021-12-12
  • java使用HashMap实现斗地主(有序版)

    java使用HashMap实现斗地主(有序版)

    这篇文章主要为大家详细介绍了java使用ArrayList实现斗地主游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • jquery uploadify和apache Fileupload实现异步上传文件示例

    jquery uploadify和apache Fileupload实现异步上传文件示例

    这篇文章主要介绍了jquery uploadify和apache Fileupload实现异步上传文件示例,需要的朋友可以参考下
    2014-05-05
  • 自定义starter引发的线上事故记录复盘

    自定义starter引发的线上事故记录复盘

    这篇文章主要为大家介绍了自定义starter引发的线上事故记录复盘,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • SpringBoot无法访问webapp目录下的文件问题

    SpringBoot无法访问webapp目录下的文件问题

    这篇文章主要介绍了SpringBoot无法访问webapp目录下的文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Spring+Quartz配置定时任务实现代码

    Spring+Quartz配置定时任务实现代码

    这篇文章主要介绍了Spring+Quartz配置定时任务实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论