使用@ControllerAdvice和@ExceptionHandler处理Controller层的异常:

@ControllerAdvice

public class GlobalExceptionHandler {

private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class);

/**

* 处理所有不可知的异常

* @param e

* @return

*/

@ExceptionHandler(Exception.class)

@ResponseBody

AppResponse handleException(Exception e){

// 记录日志

LOGGER.error(e.getMessage(), e);

// 统一返回值

AppResponse response = new AppResponse();

response.setFail("服务器错误");

return response;

}

/**

* 处理自定义异常

* @param e

* @return

*/

@ExceptionHandler(CustomException.class)

@ResponseBody

AppResponse handleCustomException(CustomException e){

LOGGER.error(e.getMessage(), e);

AppResponse response = new AppResponse();

response.setFail(e.getMessage());

return response;

}

}

对于需要给前台返回特定错误信息的异常,手动抛出CustomException,并添加错误信息,通过handleCustomException返回,其他异常信息通过handleException处理,返回服务器异常,所有异常均打印日志

java打印的globa类l_Spring异常集中处理和日志集中打印相关推荐

  1. Java 8 的 Optional 类抛异常

    Java 8 的 Optional 类抛异常 本文我们介绍当Optional类为空时如何抛自定义异常. Optional.orElseThrow 简单描述,如果Optional值存在,则isPrese ...

  2. java基础之Object类和异常

    Object类和异常 1. Object类是所有类的父类(超类, 基类,上帝类); 里面有两个常用的方法: 1> public String toString();// 默认输出对象的地址值的字 ...

  3. muduo网络库学习(九)日志类Logger和LogStream,将日志信息打印到屏幕

    每一个成熟的项目都有大大小小的日志系统,在关键的地方打印日志信息,常用来跟踪程序运行,查找错误原因等,可以节省大量的debug时间 muduo的日志信息有5个级别 TRACE,细粒度最高的日志信息,打 ...

  4. python日志模块为什么打印到界面_如何将外部模块的日志消息打印到主Python模块的终端窗口?...

    我正在写一个Python命令行程序.在 有一个主Python脚本文件,用作入口点.当用户运行这个脚本时,它将执行一些外部Python脚本文件.外部Python脚本文件也可以执行其他外部Python脚本 ...

  5. java中检查性异常类_Java异常处理、java语言推崇使用检查类型异常

    异常处理是java语言的重要特性之一,<Three Rules for effective Exception Handling>一文中是这么解释的:它主要帮助我们在debug的过程中解决 ...

  6. java工具类应该抛异常吗,java学习阶段一 工具类(异常)

    java学习阶段一 工具类(异常) 介绍 异常:运行期间出现的错误 背离程序本身意图的表现 基本知识 异常的分类 根类 Throwable Error 程序无法处理的错误 表示运行应用程序中教严重的问 ...

  7. Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式

    一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...

  8. java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为"XYZ",则抛出一个异常信息"This is a XYZ",如果从命令 ...

  9. Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常

    Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常 参考文章: (1)Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并 ...

最新文章

  1. 微软Windows SharePoint Services 3.0 应用程序模板( Templates)中文版推出了
  2. PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机
  3. 扫地机器人开机充电还是关机充电器_适用于智能扫地机器人的充电方法与流程...
  4. 经典面试题(46):以下代码将输出的结果是什么?
  5. 抛砖引玉,终于完成了自己的客户端校验提示Extender
  6. 计算机专业买r7000,2020年双十一有哪些游戏本值得买-7千到1万游戏本排行
  7. 2021李宏毅机器学习课程笔记——Recurrent Neural Network
  8. 拓端tecdat|R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化
  9. 零基础起步Keras+LSTM+CRF的实践命名实体识别NER
  10. c语言程序设计必备单词,(完整版)C语言编程必背单词.docx
  11. asp.net汽车4S店管理系统VS开发sqlserver数据库web结构C#编程
  12. 前端 html自动生成,前端工程化-自动生成页面
  13. 云标签,关键字图排版 html5 canvas版
  14. 北航计算机学院 高小鹏,毕业季 | 以来自学院的深情祝福,定格属于你的最美青春(二)...
  15. (c#)int类型和枚举类型的相互转换
  16. 用launch文件在rviz中加载机器人模型
  17. VMware安装Ubuntu Kylin系统
  18. python opencv 通过hsv阈值法扣取药盒 并矫正
  19. 3Com Switch 4250T 系列交换机
  20. 运维学shell还是python_运维DBA要不要学python

热门文章

  1. AGC008D K-th K
  2. CentOS 6.9下的Setup工具(用于管理服务/防火墙/网络配置/验证服务)
  3. jqGrid列的统计
  4. kd tree学习笔记 (最近邻域查询)
  5. Immutable Collections(3)Immutable List实现原理(中)变化中的不变
  6. 生成n个从1到M(n = M)之间的不重复的随机数问题(洗扑克牌算法)
  7. 如何提高网页中图片显示的用户体验(附源码下载)
  8. 从DataTable导出Excel,并下载,删除Excel进程。
  9. [译]JavaScript 究竟是如何工作的?(第一部分)
  10. 案例:隐秘而低调的内存泄露(OOM)