一、springboot的默认异常处理
Spring Boot提供了一个默认的映射:/error
,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容。
了解springcloud架构可以加求求:三五三六二四七二五九
例如这里我们认为制造一个异常
@GetMapping(value = "/boys") public List<Boy> boyList() throws Exception{ throw new Exception("错误"); }
使用浏览器访问http://127.0.0.1:8080/boys
二、自定义的统一异常处理
虽然Spring Boot中实现了默认的error映射,但是在实际应用中,上面你的错误页面对用户来说并不够友好,我们通常需要去实现我们自己的异常提示。
1) 统一的异常处理类(com.dechy.handle)
@ControllerAdvice public class ExceptionHandle { private final static Logger logger = LoggerFactory.getLogger(ExceptionHandle.class); @ExceptionHandler(value = Exception.class) @ResponseBody public Result handle(Exception e) { if (e instanceof BoyException) { BoyException boyException = (BoyException) e; return ResultUtil.error(boyException.getCode(), boyException.getMessage()); }else { logger.error("【系统异常】{}", e); return ResultUtil.error(-1, "未知错误"); } } }
2)自定义异常类(com.dechy.exception)
public class BoyException extends RuntimeException{ private Integer code; public BoyException(ResultEnum resultEnum) { super(resultEnum.getMsg()); this.code = resultEnum.getCode(); } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } }
3)返回结果枚举(com.dechy.enums)
public enum ResultEnum { UNKONW_ERROR(-1, "未知错误"), SUCCESS(0, "成功"), TOOSHORT(100, "身高太矮"), TOOHIGH(101, "身高太高"), ; private Integer code; private String msg; ResultEnum(Integer code, String msg) { this.code = code; this.msg = msg; } public Integer getCode() { return code; } public String getMsg() { return msg; } }
4)返回结果工具类(com.dechy.util)
public class ResultUtil { public static Result success(Object object) { Result result = new Result(); result.setCode(0); result.setMsg("成功"); result.setData(object); return result; } public static Result success() { return success(null); } public static Result error(Integer code, String msg) { Result result = new Result(); result.setCode(code); result.setMsg(msg); return result; } }
5)Boy实体类(com.dechy.model)
@Entity public class Boy { @Id @GeneratedValue private Integer id; @NotBlank(message = "这个字段必传") private String height; @Min(value = 100, message = "体重必须大于100") private BigDecimal weight; public Integer getId (){ return id; } public void setId (Integer id){ this.id = id; } public String getHeight (){ return height; } public void setHeight (String height){ this.height = height; } public BigDecimal getWeight (){ return weight; } public void setWeight (BigDecimal weight){ this.weight = weight; } @Override public String toString (){ return "Boy{" + "id=" + id + ", height='" + height + '\'' + ", weight=" + weight + '}'; } }
6)业务层具体使用时抛出异常,等待统一处理(com.dechy.service)
public void chooseBoy(Integer id) throws Exception{ Boy boy= boyRepository.findOne(id); Integer height= boy.getHeight(); if (height < 100) { //返回"身高矮" code=100 throw new BoyException(ResultEnum.TOOSHORT); }else if (height > 200) { //返回"身高太高" code=101 throw new BoyException(ResultEnum.TOOHIGH); }//... }
相关推荐
基于 Spring Boot 编写出的统一返回数据结构处理和统一异常处理的插件 使用之前,首先:不要使用Object类型返回,否则返回为null时,不会拦截到** 配置项 # 根注释 veedo: # 统一拦截配置模块 ragdoll: # 统一...
4. **错误处理和异常处理**:为了提供健壮的服务,我们需要处理可能出现的网络错误、API调用失败等情况。Spring Boot提供了全局异常处理器,可以通过`@ControllerAdvice`和`@ExceptionHandler`注解来统一处理这些...
基于Spring Boot框架的后台管理系统 项目简介 本项目是一个基于Spring Boot Thymeleaf Layui Apache Shiro Redis... 统一异常处理实现统一异常处理机制。 Token角色权限认证使用Shiro Redis实现Token角色权限认证。
全局异常处理通过自定义异常处理器,统一处理系统中的异常,并返回友好的错误信息。 配置管理 Swagger配置通过配置Swagger,生成API文档,方便前后端开发人员查看和测试API。 文件大小限制通过配置文件,设置...
基于Spring Boot框架的ELADMIN后台管理系统 项目简介 ELADMIN是一个基于Spring Boot 2.1.0、Spring Boot Jpa、JWT、Spring Security、Redis... 统一异常处理前后端统一异常拦截处理,统一输出异常,避免繁琐的判断。
系统支持学生提交志愿、导师审核志愿、管理员管理志愿等功能,通过统一响应结果封装、统一异常处理、接口签名认证等技术手段,确保系统的稳定性和安全性。 项目的主要特性和功能 最佳实践的项目结构提供了一个...
基于Spring Boot框架的知学后台管理系统 项目简介 知学后台管理系统是一个基于Spring Boot 2.1.0、Spring Boot Jpa、JWT、Spring Security、... 统一异常处理前后端统一异常拦截处理,统一输出异常,避免繁琐的判断。
基于Spring Boot框架的动漫图片爬虫系统 内容概要 本项目是一个基于Spring Boot框架的动漫图片爬虫系统,主要功能是从指定网站爬取动漫图片,并将图片信息存储到... 支持API访问限制和统一异常处理,确保系统稳定性。
项目涵盖了Spring Boot的基础和进阶功能,包括数据库操作、事务管理、AOP处理、统一异常处理以及单元测试等。 ## 项目的主要特性和功能 1. 基础功能 实现基本的HTTP请求处理(GET、POST、PUT、DELETE)。 数据库...
统一异常处理 简单的接口签名认证 常用基础方法抽象封装 使用Druid Spring Boot Starter 集成Druid数据库连接池与监控 使用FastJsonHttpMessageConverter,提高JSON序列化速度 集成MyBatis、通用Mapper插件、...
基于Spring Boot框架的秒杀系统Demo 项目简介 本项目是一个基于Spring Boot框架的秒杀系统Demo,旨在演示如何使用Spring Boot构建一个高效、安全的秒杀系统。项目涵盖了用户登录、商品展示、秒杀活动等核心功能,...
异常处理全局异常处理器统一处理业务异常。 日志记录使用SLF4J进行日志记录,便于问题追踪。 技术栈 Spring Boot简化Spring应用的初始搭建和开发过程。 MyBatis优秀的持久层框架,支持定制化SQL、存储过程...
Spring Cloud Gateway作为一款基于Spring Framework 5、Project Reactor和Spring Boot 2.0构建的云原生网关框架,它提供了强大的路由转发能力和灵活的过滤器模型,能够很好地满足微服务网关的各种需求。然而,在实际...
基于Spring Boot框架的博客管理系统 内容概要 本项目是一个基于Spring Boot框架的博客管理系统,主要功能包括用户登录、注册、权限管理、JWT认证、文件上传、验证码生成等。系统通过Spring Security进行安全配置,...
1. 全局异常处理通过GlobalExceptionHandlerAdvice类实现全局异常处理,统一处理项目中出现的各种异常,确保系统稳定运行。 2. 全局响应处理通过GlobalResultResponseAdvice类实现全局响应处理,统一API返回格式,...
# 基于Spring Boot和HBase的HBase客户端...- **异常处理**:全局异常处理机制,确保应用的健壮性和错误信息的统一管理。 - **跨域资源共享(CORS)**:配置CORS策略,支持前后端分离架构中的跨域请求。 ## 项目结构 -
基于Spring Boot框架的论坛管理系统 项目简介 本项目是一个基于Spring Boot框架开发的论坛管理系统(BBS Manager System),旨在提供一个高效、安全的... 全局异常处理统一处理系统中的异常,提供友好的错误提示。
# 基于Spring Boot的后台管理系统 ## 项目简介 ELADMIN 后台管理系统是一个基于 Spring Boot 2.1.0、Spring Boot Jpa、JWT、Spring ...- **异常处理**:前后端统一异常拦截处理,统一输出异常,避免繁琐的判断
基于Spring Boot的聚合搜索平台 ... 异常处理全局异常处理器,统一处理业务异常。 技术栈 后端Spring Boot, MyBatis Plus, Elasticsearch, Redis 前端React, Ant Design 数据库MySQL 其他Lombok, Swagge
4. 错误处理:自定义全局异常处理器,统一处理未被捕获的异常,提升系统稳定性。 五、PPT展示与文档详解 配合提供的“基于Spring Boot网络相册设计与实现.docx”文档,详细阐述了每个模块的设计思路和实现细节。而...