首页 > 其他分享 >ExceptionHandler-全局异常处理器

ExceptionHandler-全局异常处理器

时间:2024-03-21 19:35:24浏览次数:30  
标签:处理 ExceptionHandler 处理器 catch 全局 异常

1.出现异常,如何处理?

  • 在Controller方法中进行try…catch处理
  • 全局异常处理器。 Controller抛出的异常没有处理,最终会抛给全局异常处理器处理,处理完后再给浏览器响应统一处理结果集。

2.全局异常处理器优点

  • 不用强制写try-catch,由全局异常处理器统一捕获处理。(try-catch不仅有大量的冗余代码,而且还影响代码的可读性)
  • 自定义异常,只能用全局异常来捕获。不能直接返回给客户端,客户端无法解析,需由全局异常处理器
  • JSR303规范的Validator参数校验器,参数校验不通过会抛出异常,无法使用try-catch语句直接捕获,只能使用全局异常处理器。
@RestControllerAdvice//RestControllerAdvice注解
/*
* 全局异常处理器
* @RestControllerAdvice注解用于创建全局异常处理类,用于捕获和处理整个应用程序中的异常。
* 适用于RESTful风格的应用程序,可自动将异常处理方法的返回值转换为HTTP响应的主体。
* 使用时只需在类上添加该注解。这个类需包含一个或多个带有@ExceptionHandler注解的方法,用于处理不同类型的异常。
**/
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public Result handleException(Exception e){
        e.printStackTrace();
        // return Result.error(e.getMessage());
        return Result.error(StringUtils.hasLength(e.getMessage())?e.getMessage():"操作失败");
    }
}

标签:处理,ExceptionHandler,处理器,catch,全局,异常
From: https://www.cnblogs.com/kisssheep/p/18088096

相关文章

  • Dll堆栈问题(Dll的静态变量与全局变量、vs的MT与MD)
    问题引入:dll有一个导出函数,函数参数是string&,string在函数内部被=赋值。在exe动态加载此dll,调用此导出函数后,会崩溃。原因:如果任何STL类的实现中使用了静态变量(我们无从得知但map、string存在此问题),且编译dll时,vc的运行库设置为MT或MTd,会静态链接VC的运行时库,这会导致采用静态链......
  • 微信小程序(全局数据共享)
       npmi--savemobx-miniprogrammobx-miniprogram-bindings   ......
  • Jmeter 之跨线程组传参(环境变量设置为全局变量)
    工作中往往会出现同一个测试计划下这个线程组下变量在另外一个线程组中使用,这就意味着需要把环境变量修改为全局变量 1.首先通过json提取器或者正则表达式的方式把数据提取出来 2.打开函数助手,选择setProperty函数, 生成函数${__setProperty(token,${access_token},)}3.......
  • dotNet8 全局异常处理
    前言异常的处理在我们应用程序中是至关重要的,在dotNet中有很多异常处理的机制,比如MVC的异常筛选器,管道中间件定义trycatch捕获异常处理亦或者第三方的解决方案Hellang.Middleware.ProblemDetails等。MVC异常筛选器不太灵活,对管道的部分异常捕获不到,后两种方式大家项目应该......
  • this指向是在那个全局变量?
    在浏览器环境中,如果没有特殊处理,全局对象是window对象。因此,在浏览器环境中,this的指向在全局作用域中将是window对象。在Node.js环境中,全局对象是global对象。举例来说,在浏览器环境下,如果在全局作用域中使用this,它将指向window对象。例如,以下代码将会输出true:co......
  • Excel/WPS超级处理器,合并单元格汇总3种方式
    在处理职场数据表格,会遇到在合并单元格中汇总求和,计算平均值或统计个数。如何快速被统计汇总呢?接下来,我们就使用超级处理器中的合并单元格汇总菜单来完成这些,鼠标点选即可。超级处理器下载与安装1)合并单元格汇总-求和2)合并单元格汇总-求平均3)合并单元格汇总-计数想......
  • 全局异常捕获(@RestControllerAdvice)介绍和使用
    @RestControllerAdvice是什么@RestControllerAdvice是Spring框架提供的一个注解,用于定义全局异常处理器和全局数据绑定设置。它结合了@ControllerAdvice和@ResponseBody两个注解的功能。@ControllerAdvice@ControllerAdvice是一个用于定义全局控制器增强(即全局异常处理和......
  • 基于似然场的全局定位
    似然场法定位检测似然场最小二乘问题构建机器人Robot在地图World中的位姿表示为\(\boldsymbol{x}\),激光雷达扫描得到的点云表示为\(\{p_i^R\}\),其中\(^R\)表示在机器人坐标系下的坐标,\(_i\)表示点云中第i个点。\[\boldsymbol{x}=[x,y,\theta]^{\rm{T}}\]那么,点云中机器人......
  • Eplan插件 - 修改全局栅格
    前言在工作中,经常使用到窗口宏,尤其是在驱动器比较多的时候,可能一连几十页都是伺服驱动器,但是由于窗口宏是从其他地方获取而来。而窗口宏的制作者使用了过大或过小的栅格就会出现画图连接不齐的情况,那么就需要手动修改栅格的大小。在Eplan中默认修改的是当前页面的栅格。在页数很......
  • 华为下一代麒麟处理器将采用全大核设计:性能有望超越巅峰骁龙
    近日,有博主通过微博爆料,称华为正计划将32位应用彻底逐出历史舞台,其下一代麒麟处理器将全面采用64位全大核设计。据了解,华为正在研发多款新的麒麟芯片,这些芯片将彻底放弃32位设计,全面拥抱64位内核结构。这一转变不仅彰显了华为对于技术进步的不懈追求,也预示着其即将推出的新一代芯......