controller层统一处理异常

本文介绍了如何使用@ControllerAdvice和@ExceptionHandler在Java中创建统一的异常处理机制。通过这些注解,可以灵活处理不同类型的异常,减少try-catch块的使用,提高代码可读性,并确保返回给前端的错误信息具有统一格式,便于问题定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@ExceptionHandler 统一处理异常

1. 知识

@ExceptionHandler:用于在特定处理程序类和/或处理程序方法中处理异常的注释。

使用该注释注释的处理程序方法允许具有非常灵活的签名。它们可以有下列类型的参数,按任意顺序排列:

  • 1.异常参数:声明为一般异常或更具体的异常。若要声明更为具体得参数,可用value来确定
  • 2.请求和/或响应对象(通常来自Servlet API),可以选择任何特定的请求/响应类型:如 javax.servlet.http.HttpServletRequest
  • 3.会话对象:通常是javax.servlet.http.HttpSession,这种类型的参数将强制出现相应的会话,参数不能为空,
  • 4.当前请求区域设置的java.util.Locale
  • 5.java.io.InputStream / java.io.Reader访问请求的内容

(参考翻译来自源码的文档)

目前只用过第一种,用来处理异常。 回顾之前java异常处理 主要有这几个关键字:try catch finally throw throws 如果要抛出具体明确的异常,则可以用 try catch来捕捉,若有些异常不做处理 直接抛出,则可以使用 throw(主要是在语句抛出),throws(主要是在方法上抛出);试想以前的代码,有时一段代码,业务逻辑如果复杂,一个try就有多个catch,代码看起来就给人一种很冗余的感觉;使用@RestControllerAdvice @ExceptionHandler统一拦截异常处理 争对不同的异常抛出,我可以做不同的异常拦截,对拦截的异常信息做统一处理(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值