类 GlobalExceptionAdvice
java.lang.Object
net.sohelp.boot.demo.core.advice.GlobalExceptionAdvice
全局异常处理器
统一处理系统中抛出的各种异常,并返回统一格式的响应结果。
- 从以下版本开始:
- 2018-02-22 11:29:30
- 作者:
- Aaron Fung
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明accessDeniedException(AccessDeniedException e, jakarta.servlet.http.HttpServletResponse response) 处理访问拒绝异常(AccessDeniedException)BusiException(BusiException e, jakarta.servlet.http.HttpServletResponse response) 处理业务逻辑异常(BusiException)DuplicateKeyException(DuplicateKeyException e, jakarta.servlet.http.HttpServletResponse response) 处理数据库主键冲突异常(DuplicateKeyException)entityException(Exception e, jakarta.servlet.http.HttpServletResponse response) 处理实体相关操作异常(EntityException)entityFormulaException(EntityFormulaException e, jakarta.servlet.http.HttpServletResponse response) 处理实体公式计算异常(EntityFormulaException)entityValidateException(EntityValidateException e, jakarta.servlet.http.HttpServletResponse response) 处理实体校验异常(EntityValidateException)处理通用异常(Exception)作为兜底处理器之一httpRequestMethodNotSupportedException(org.springframework.web.HttpRequestMethodNotSupportedException e, jakarta.servlet.http.HttpServletResponse response) 处理HTTP请求方法不支持异常(HttpRequestMethodNotSupportedException)jsonParseException(com.fasterxml.jackson.core.JsonParseException e, jakarta.servlet.http.HttpServletResponse response) 处理JSON解析异常,特别是处理包含非法字符的请求数据magicScriptException(org.ssssssss.script.exception.MagicScriptException e, jakarta.servlet.http.HttpServletResponse response) 处理MagicScript异常,特别是处理包含非法字符的请求数据notLoginException(cn.dev33.satoken.exception.NotLoginException e, jakarta.servlet.http.HttpServletResponse response) 处理未登录异常(NotLoginException)notPermissionException(cn.dev33.satoken.exception.NotPermissionException e, jakarta.servlet.http.HttpServletResponse response) 处理无权限访问异常(NotPermissionException)nullPointerException(NullPointerException e, jakarta.servlet.http.HttpServletResponse response) 处理空指针异常(NullPointerException)runtimeException(Exception e, jakarta.servlet.http.HttpServletResponse response) 处理运行时异常(RuntimeException)作为兜底处理器之一scriptException(ScriptException e, jakarta.servlet.http.HttpServletResponse response) 处理脚本执行异常(ScriptException)处理所有其他可抛出异常(Throwable),作为兜底异常处理器tokenAuthenticationException(TokenAuthenticationException e, jakarta.servlet.http.HttpServletResponse response) 处理Token认证异常(TokenAuthenticationException)undeclaredThrowableException(Exception e, jakarta.servlet.http.HttpServletResponse response) 处理未声明的运行时异常(UndeclaredThrowableException)
-
构造器详细资料
-
GlobalExceptionAdvice
public GlobalExceptionAdvice()
-
-
方法详细资料
-
DuplicateKeyException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(DuplicateKeyException.class) public ApiResult<String> DuplicateKeyException(DuplicateKeyException e, jakarta.servlet.http.HttpServletResponse response) throws SQLException 处理数据库主键冲突异常(DuplicateKeyException)- 参数:
e- 数据库主键冲突异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和错误消息
- 抛出:
SQLException
-
httpRequestMethodNotSupportedException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(org.springframework.web.HttpRequestMethodNotSupportedException.class) public ApiResult<String> httpRequestMethodNotSupportedException(org.springframework.web.HttpRequestMethodNotSupportedException e, jakarta.servlet.http.HttpServletResponse response) 处理HTTP请求方法不支持异常(HttpRequestMethodNotSupportedException)- 参数:
e- 请求方法不支持异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和国际化提示信息
-
accessDeniedException
@ResponseBody @ExceptionHandler(java.nio.file.AccessDeniedException.class) public ApiResult<String> accessDeniedException(AccessDeniedException e, jakarta.servlet.http.HttpServletResponse response) 处理访问拒绝异常(AccessDeniedException)- 参数:
e- 访问被拒绝异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含未授权状态码和提示信息
-
entityValidateException
@ResponseBody @ExceptionHandler(EntityValidateException.class) @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") public ApiResult<String> entityValidateException(EntityValidateException e, jakarta.servlet.http.HttpServletResponse response) 处理实体校验异常(EntityValidateException)- 参数:
e- 实体验证失败异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和具体错误描述
-
entityFormulaException
@ResponseBody @ExceptionHandler(EntityFormulaException.class) @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") public ApiResult<String> entityFormulaException(EntityFormulaException e, jakarta.servlet.http.HttpServletResponse response) 处理实体公式计算异常(EntityFormulaException)- 参数:
e- 实体公式执行异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和具体错误描述
-
BusiException
@ResponseBody @ExceptionHandler(BusiException.class) public ApiResult<String> BusiException(BusiException e, jakarta.servlet.http.HttpServletResponse response) 处理业务逻辑异常(BusiException)- 参数:
e- 自定义业务异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和具体的业务错误信息
-
scriptException
@ResponseBody @ExceptionHandler(javax.script.ScriptException.class) @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") public ApiResult<String> scriptException(ScriptException e, jakarta.servlet.http.HttpServletResponse response) 处理脚本执行异常(ScriptException)- 参数:
e- 脚本执行过程中发生的异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和原始异常原因
-
tokenAuthenticationException
@ResponseBody @ExceptionHandler(TokenAuthenticationException.class) public ApiResult<String> tokenAuthenticationException(TokenAuthenticationException e, jakarta.servlet.http.HttpServletResponse response) 处理Token认证异常(TokenAuthenticationException)- 参数:
e- Token认证失败异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含Token过期状态码和提示信息
-
notLoginException
@ResponseBody @ExceptionHandler(cn.dev33.satoken.exception.NotLoginException.class) public ApiResult<String> notLoginException(cn.dev33.satoken.exception.NotLoginException e, jakarta.servlet.http.HttpServletResponse response) 处理未登录异常(NotLoginException)- 参数:
e- 用户未登录异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含Token过期状态码和提示信息
-
notPermissionException
@ResponseBody @ExceptionHandler(cn.dev33.satoken.exception.NotPermissionException.class) public ApiResult<String> notPermissionException(cn.dev33.satoken.exception.NotPermissionException e, jakarta.servlet.http.HttpServletResponse response) 处理无权限访问异常(NotPermissionException)- 参数:
e- 权限不足异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含未授权状态码和提示信息
-
nullPointerException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25", refid="moduleName") @ExceptionHandler(java.lang.NullPointerException.class) public ApiResult<String> nullPointerException(NullPointerException e, jakarta.servlet.http.HttpServletResponse response) 处理空指针异常(NullPointerException)- 参数:
e- 空指针异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含通用错误码、提示信息及详细堆栈跟踪
-
throwable
@ResponseBody @ExceptionHandler(java.lang.Throwable.class) @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") public ApiResult<String> throwable(Throwable e, jakarta.servlet.http.HttpServletResponse response) 处理所有其他可抛出异常(Throwable),作为兜底异常处理器- 参数:
e- 可抛出的异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含通用错误码和提示信息;如果是HTML页面则直接跳转不处理
-
entityException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(EntityException.class) public ApiResult<String> entityException(Exception e, jakarta.servlet.http.HttpServletResponse response) 处理实体相关操作异常(EntityException)- 参数:
e- 实体操作异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,通过handleException进一步处理
-
undeclaredThrowableException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(java.lang.reflect.UndeclaredThrowableException.class) public ApiResult<String> undeclaredThrowableException(Exception e, jakarta.servlet.http.HttpServletResponse response) 处理未声明的运行时异常(UndeclaredThrowableException)- 参数:
e- 包装了实际异常的代理层异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 根据内部真实异常类型决定返回不同类型的API结果对象
-
exception
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(java.lang.Exception.class) public ApiResult<String> exception(Exception e, jakarta.servlet.http.HttpServletResponse response) 处理通用异常(Exception)作为兜底处理器之一- 参数:
e- 普通Java异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,通过handleException进一步处理
-
runtimeException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(java.lang.RuntimeException.class) public ApiResult<String> runtimeException(Exception e, jakarta.servlet.http.HttpServletResponse response) 处理运行时异常(RuntimeException)作为兜底处理器之一- 参数:
e- 运行时异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 封装后的API结果对象,包含通用错误码和提示信息
-
jsonParseException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(com.fasterxml.jackson.core.JsonParseException.class) public ApiResult<String> jsonParseException(com.fasterxml.jackson.core.JsonParseException e, jakarta.servlet.http.HttpServletResponse response) 处理JSON解析异常,特别是处理包含非法字符的请求数据- 参数:
e- JSON解析异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和友好的错误提示
-
magicScriptException
@ResponseBody @OperationLog(module="\u5f02\u5e38\u62e6\u622a", value="\u64cd\u4f5c\u5931\u8d25") @ExceptionHandler(org.ssssssss.script.exception.MagicScriptException.class) public ApiResult<String> magicScriptException(org.ssssssss.script.exception.MagicScriptException e, jakarta.servlet.http.HttpServletResponse response) 处理MagicScript异常,特别是处理包含非法字符的请求数据- 参数:
e- MagicScript异常对象response- HTTP响应对象,用于设置跨域头等信息- 返回:
- 返回封装后的API结果对象,包含错误码和友好的错误提示
-