springboot 学习 -- 全局异常处理

本贴最后更新于 2325 天前,其中的信息可能已经时异事殊

概述

  • 在 springboot 学习过程中,全局异常处理,捕获所有 controller 异常。这里就以未登录异常示例

一、自定义登录异常

  • 自定义一个异常类,继承 RuntimeException
package com.oneroot.eos.sysException; import lombok.Data; /** * @DESC 登录异常 * @Author:Caixiaowei * @Date:2018/11/3 * @Time:上午10:38 */ @Data public class AuthorizeException extends RuntimeException{ private int code; private String message; public AuthorizeException(){ super(); } public AuthorizeException(int code, String message){ this.setCode(code); this.setMessage(message); } }

二、定义异常 Handler 捕获异常处理

  • 通过使用 @ControllerAdvice 定义统一的异常处理类,而不是在每个 Controller 中逐个定义。@ExceptionHandler 用来定义函数针对的异常类型
@RestControllerAdvice public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { public ResultEntity authorizeExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) { response.setStatus(HttpStatus.BAD_REQUEST.value()); AuthorizeException exception = (AuthorizeException) e; return ResultEntity.createByErrorCodeMessage(exception.getCode(), exception.getMessage()); } }
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    945 引用 • 1460 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...