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项目异常全局处理相关推荐

  1. Eclipse搭建springboot项目(六)全局异常

    Eclipse搭建springboot项目(六)全局异常 知识点: 1.SpringBoot2.x服务端异常和SpringBoot配置全局异常 1).默认异常测试 int i = 1/0,不友好 2) ...

  2. springboot项目创建全局唯一id生成器

    springboot项目创建全局唯一id生成方法,参考 Snowflake算法 yml文件 #app 全局唯一id生成 app:idGenerator:workerId: 1datacenterId: ...

  3. Springboot项目全局异常统一处理

    最近在做项目时需要对异常进行全局统一处理,主要是一些分类入库以及记录日志等,因为项目是基于Springboot的,所以去网络上找了一些博客文档,然后再结合项目本身的一些特殊需求做了些许改造,现在记录下 ...

  4. SpringBoot项目中的全局异常处理器 Failed to invoke @ExceptionHandler method

    SpringBoot项目中的全局异常处理器 Failed to invoke @ExceptionHandler method 参考文章: (1)SpringBoot项目中的全局异常处理器 Faile ...

  5. 小编教您Springboot项目中异常拦截设计与处理

    项目运行过程中会出现各种各样的问题,常见的有以下几种情况: 业务流程分析疏漏,对业务流程的反向操作.边界分析设计不充分 调用外部服务.调用外部系统出现的超时.错误.返回值与预期不符 外部资源连通性问题 ...

  6. SpringBoot中定义全局异常处理器

    场景 SpringBoot中创建全局异常处理器,使发生异常时能处理. 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/356 ...

  7. 异常解决——SpringBoot项目启动卡住,无任何异常信息

    项目场景: SpringBoot项目启动的时候Console控制台日志打印卡住,无任何异常信息打印 问题描述: 之前项目是好的,但是后面经人写了一部分代码之后,项目启动不了,SpringBoot项目启 ...

  8. springboot怎么捕获全局异常

    学习目标: java中的异常和错误 学习内容: 首页要了解什么是异常什么是错误 捕捉全局异常 自定义异常 一.java中异常和错误的区别 Error类和Exception类的父类都是throwable ...

  9. 《SpringBoot从菜鸟到老鸟》之SpringBoot 如何配置全局的异常捕获

    SpringBoot 如何配置全局的异常捕获 SpringBoot中自带的异常捕获机制返回的默认页面比较丑,对用户来说不够人性化. 所以这篇文章来讲解SpringBoot钟自定义全局异常捕获. 主要讲 ...

最新文章

  1. 将数据库改为使用登录名密码登陆
  2. 【Android】Anroid5.0+新控件---酷炫标题栏的简单学习
  3. Json和XML之间的对比
  4. 【动态规划】关于转移方程的简单理解
  5. 【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型
  6. iphone中结束电话后返回自己的应用
  7. /bin/bash: jar: command not found(
  8. u-boot移植随笔:移植过程问题及解决(本文章不时更新)
  9. 转载 2012年游戏行业人才需求预测
  10. 游戏经济系统分析:通货与交易
  11. 说下自己看源码的一点经验(Python Web 相关)
  12. WLAN加密技术详解
  13. webui-popover 一个轻量级的jquery弹出层插件
  14. 使用mybaits遇见有大写的sql语句错误的bug分析
  15. Word文档打不开怎么办
  16. 用python画小兔子_用Python画一只兔子——turtle库circle画圆函数的详细用法介绍
  17. MySQL对数据的基本操作三:UPDATE语句
  18. Illumina测序原理
  19. win10提示“你的设备已过期”的的最佳解决策略和方法
  20. 安装blockchain-explorer区块浏览器

热门文章

  1. 入门机器学习(十三)--支持向量机(SVM)
  2. word2003计算机考试题,[2018职称计算机Word2003考前练习题] 2018年职称计算机考试练习题库...
  3. python兔子和獾_少儿编程分享:手把手教你用PYTHON编写兔獾大作战(三)
  4. vue 悬浮按钮组件_如何搭建和发布一个 Vue 组件库
  5. android系统换动画,Android Activity动画跳转修改
  6. asp.net core 读取连接字符串
  7. vuex语法精简(方便开发查阅)
  8. vue中点击添加class,双击去掉class
  9. Sublime Text 3 注册码
  10. iPad开发(相对于iPhone开发时专有的API)