首页 > 其他分享 >自定义异常处理

自定义异常处理

时间:2024-02-21 16:00:51浏览次数:25  
标签:code 自定义 处理 responseResult ResponseResult setMsg msg 异常 public

系统自定义异常处理

@RestControllerAdvice
public class ExceptionAdvice {

    @ExceptionHandler(ArithmeticException.class)
    @ResponseBody
    public ResponseResult ariHandleException(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(0).setMsg("格式转换异常");
        return responseResult;
    }

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public ResponseResult handleException(Exception e){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(0).setMsg(e.getMessage());
        return responseResult;
    }



}

简单说明:异常越精确,越能知道此类异常的处理,如果没有特殊处理的,就是Exception。异常类型写在@ExceptionHandler(ArithmeticException.class)里面。

比如如果抛出异常ArithmeticException,那么就会走第一种方法,如果是别的异常,没有特殊处理的,那就走第二种方法。

下面是响应对象。

@Data
@Slf4j
@Accessors(chain = true)
public class ResponseResult implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer code;

    private String msg;

    private Object data;

    public static ResponseResult success(int code,String msg,Object data){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(code).setMsg(msg).setData(data);
        return responseResult;
    }

    public static ResponseResult success(Object data){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(200).setMsg("").setData(data);
        return responseResult;
    }

    public static ResponseResult success(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(200).setMsg("请求成功").setData(null);
        return responseResult;
    }

    public static ResponseResult success(int code,String msg){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(code).setMsg(msg).setData(null);
        return responseResult;
    }



    public static ResponseResult fail(int code,String msg,Object data){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(code).setMsg(msg).setData(data);
        return responseResult;
    }


    public static ResponseResult fail(int code,String msg){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(code).setMsg(msg).setData(null);
        return responseResult;
    }

    public static ResponseResult fail(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(-1).setMsg("请求失败").setData(null);
        return responseResult;
    }

}

测试的controller

ArithmeticException异常

Exception异常

 测试结果

 

标签:code,自定义,处理,responseResult,ResponseResult,setMsg,msg,异常,public
From: https://www.cnblogs.com/qwg-/p/18025430

相关文章

  • Windows 批处理(bat) if条件判断语句使用教程
    基本描述在bat脚本中,if条件判断语句共有6种比较操作符,分别为其中,只有等于操作符可以使用符号“==”表示,其他操作符只能使用英文简写当参与比较的字符串是字符串时,将被转换为对于的ASCII码进行比较If指令基本格式指令格式为:if条件表达式(…)注意:英文缩写的比较操作符,左......
  • 时间序列异常检测常见方法和代码
    0.介绍时间序列的异常检测是在序列中识别明显偏离正常情况的数据,从而知晓仪器损坏、欺诈活动、系统故障或其他意外事件。我们介绍监督和无监督学习方法探索各种异常检测技术。1.了解异常检测异常通常称为异常值或异常值,是显着偏离数据集中的预期或正常行为的数据点或观察结果......
  • 前端处理后端返回datetime类型 格式转换
    有时候后端使用的字段为datetime,接口返回数据会变成/Date(1708311728230+0800)/这种,这时候就需要去转换一下格式functionconvertDateString(dateString){vartimestamp=parseInt(dateString.match(/\d+/)[0]);vartimezoneOffset=parseInt(dateString.match(/[......
  • antd 单元格合并处理
    实现效果代码tableData为Table的数据constmergeCells=(text,dataSource,index,key)=>{//上一行该列数据是否一样if(index!==0&&text===dataSource[index-1][key]){return0}letrowSpan=1//判断下一行是否相等f......
  • Windows bat批处理+PowerShell获取文件日期 和 时分秒
    前言全局说明Windowsbat批处理+PowerShell获取文件秒一、说明二、分开获取日期和时分秒获取bat文件自身的日期时间和时分秒1.源码文件名:get-file-second.bat@echooffchcp65001>nulecho.echo.setbak_file=get-file-second.bat::获取文件修改时间setloc......
  • 华为二面:SpringBoot如何自定义Starter?
    SpringBoot的自动配置机制为开发人员提供了一种轻松集成和配置各种功能的便捷方式。然而,随着项目的复杂性增加,更好地组织和分享通用功能变得至关重要。自定义Starter成为了理想的解决方案,旨在简化项目的依赖管理和自动配置,使开发者能够迅速而灵活地集成特定的功能模块。本文将深......
  • 多个@RestControllerAdvice全局异常捕获器的顺序问题
    影响一多个捕获器按照加载顺序执行,可以通过@Order注解控制加载顺序,值越小的越先加载,如@Order(Ordered.HIGHEST_PRECEDENCE)最先执行。同时可以在捕获器中加入静态代码块打印日志判断加载顺序,如:static{log.info("GlobalExceptionHandlerclasshasbeenloaded.");......
  • OAF:开发环境配置--异常处理
      测试提示信息:Unabletoopenfile"D:\Jdeveloper\jdevhome\jdev\myprojects\oracle\apps\fnd\framework\toolbox\attributes\FwkTbxAddresses.xml".ThedocumentisnotintheXMLPath"D:\Jdeveloper\jdevbin\myprojects;D:\jdeveloper\jd......
  • Pandas处理时间序列数据
    Pandas时序处理中最常见的两种数据类型为datetime和timedelta。flowchartTBdatetime--data-->2024-01-01datetime--time-->10:00:00datetime顾名思义就是既有日期date也有时间time,表示一个具体的时间点(时间戳)。timedelta则表示两个时间点之间的差,比如2024-0......
  • 一文搞懂Flink Window机制 Windows和 Function 和 Process组合处理事件
    一文搞懂FlinkWindow机制和Function和Process组合处理事件Windows是处理无线数据流的核心,它将流分割成有限大小的桶(buckets),并在其上执行各种计算。Windows是处理无线数据流的核心,它将流分割成有限大小的桶(buckets),并在其上执行各种计算。窗口化的Flink程......