轻松实现SpringBoot项目异常全局处理
1.Restful接口:当出现异常的时候,我们并不希望前端能够看到后台异常栈信息,更希望正常返回一段JSON,效果如下:
有两种方案,一种是intercept的形式,但如果用来处理异常的话,貌似不太适合,并非所有请求都会出现异常,我们更希望出现异常的时候再去处理。所以,不推荐intercept的形式。更推荐通过如下方式去处理:
@ControllerAdvice(basePackages = {"com.ripplechan.server.controller"})
public class ControllerException {@ExceptionHandler@ResponseBody@ResponseStatus(HttpStatus.OK)public Map<String,Object> exception(Exception e) {HashMap<String, Object> map = new HashMap<>();if (e instanceof BaseException) {BaseException e1 = (BaseException) e;map.put("message", e1.getMessage());map.put("code", e1.getCode());} else {map.put("message", BaseException.DEFAULT_MESSAGE);map.put("code", BaseException.DEFAULT_CODE);}return map;}}
2.普通异常,比如404之类的,直接在项目的resources目录下面建立如下结构
文件名和HttpStatus状态一致即可,然后我们就能看到如下效果:
有了上面的方案,我们的controller,再也不会出现下面这样的代码了:
转载于:https://my.oschina.net/vright/blog/1555143
轻松实现SpringBoot项目异常全局处理相关推荐
- Eclipse搭建springboot项目(六)全局异常
Eclipse搭建springboot项目(六)全局异常 知识点: 1.SpringBoot2.x服务端异常和SpringBoot配置全局异常 1).默认异常测试 int i = 1/0,不友好 2) ...
- springboot项目创建全局唯一id生成器
springboot项目创建全局唯一id生成方法,参考 Snowflake算法 yml文件 #app 全局唯一id生成 app:idGenerator:workerId: 1datacenterId: ...
- Springboot项目全局异常统一处理
最近在做项目时需要对异常进行全局统一处理,主要是一些分类入库以及记录日志等,因为项目是基于Springboot的,所以去网络上找了一些博客文档,然后再结合项目本身的一些特殊需求做了些许改造,现在记录下 ...
- SpringBoot项目中的全局异常处理器 Failed to invoke @ExceptionHandler method
SpringBoot项目中的全局异常处理器 Failed to invoke @ExceptionHandler method 参考文章: (1)SpringBoot项目中的全局异常处理器 Faile ...
- 小编教您Springboot项目中异常拦截设计与处理
项目运行过程中会出现各种各样的问题,常见的有以下几种情况: 业务流程分析疏漏,对业务流程的反向操作.边界分析设计不充分 调用外部服务.调用外部系统出现的超时.错误.返回值与预期不符 外部资源连通性问题 ...
- SpringBoot中定义全局异常处理器
场景 SpringBoot中创建全局异常处理器,使发生异常时能处理. 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/356 ...
- 异常解决——SpringBoot项目启动卡住,无任何异常信息
项目场景: SpringBoot项目启动的时候Console控制台日志打印卡住,无任何异常信息打印 问题描述: 之前项目是好的,但是后面经人写了一部分代码之后,项目启动不了,SpringBoot项目启 ...
- springboot怎么捕获全局异常
学习目标: java中的异常和错误 学习内容: 首页要了解什么是异常什么是错误 捕捉全局异常 自定义异常 一.java中异常和错误的区别 Error类和Exception类的父类都是throwable ...
- 《SpringBoot从菜鸟到老鸟》之SpringBoot 如何配置全局的异常捕获
SpringBoot 如何配置全局的异常捕获 SpringBoot中自带的异常捕获机制返回的默认页面比较丑,对用户来说不够人性化. 所以这篇文章来讲解SpringBoot钟自定义全局异常捕获. 主要讲 ...
最新文章
- 将数据库改为使用登录名密码登陆
- 【Android】Anroid5.0+新控件---酷炫标题栏的简单学习
- Json和XML之间的对比
- 【动态规划】关于转移方程的简单理解
- 【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型
- iphone中结束电话后返回自己的应用
- /bin/bash: jar: command not found(
- u-boot移植随笔:移植过程问题及解决(本文章不时更新)
- 转载 2012年游戏行业人才需求预测
- 游戏经济系统分析:通货与交易
- 说下自己看源码的一点经验(Python Web 相关)
- WLAN加密技术详解
- webui-popover 一个轻量级的jquery弹出层插件
- 使用mybaits遇见有大写的sql语句错误的bug分析
- Word文档打不开怎么办
- 用python画小兔子_用Python画一只兔子——turtle库circle画圆函数的详细用法介绍
- MySQL对数据的基本操作三:UPDATE语句
- Illumina测序原理
- win10提示“你的设备已过期”的的最佳解决策略和方法
- 安装blockchain-explorer区块浏览器
热门文章
- 入门机器学习(十三)--支持向量机(SVM)
- word2003计算机考试题,[2018职称计算机Word2003考前练习题] 2018年职称计算机考试练习题库...
- python兔子和獾_少儿编程分享:手把手教你用PYTHON编写兔獾大作战(三)
- vue 悬浮按钮组件_如何搭建和发布一个 Vue 组件库
- android系统换动画,Android Activity动画跳转修改
- asp.net core 读取连接字符串
- vuex语法精简(方便开发查阅)
- vue中点击添加class,双击去掉class
- Sublime Text 3 注册码
- iPad开发(相对于iPhone开发时专有的API)