spring boot2.0+中添加全局异常捕获

1、添加自定义异常,继承RuntimeException,为什么继承RuntimeException呢?是因为我们的事务在RuntimeException异常下会发生回滚。

 1 public class BusinessException extends RuntimeException{
 2
 3     public BusinessException(String code, String msg){
 4         this.code = code;
 5         this.msg = msg;
 6     }
 7
 8     private String code;
 9     private String msg;
10
11     public String getCode() {
12         return code;
13     }
14     public void setCode(String code) {
15         this.code = code;
16     }
17
18     public String getMsg() {
19         return msg;
20     }
21
22     public void setMsg(String msg) {
23         this.msg = msg;
24     }
25
26 }

自定义异常类

2、添加全局异常捕获,使用@RestControllerAdvice 注解实现

 1 public class CustomExtHandler {
 2
 3     private static final Logger LOG = LoggerFactory.getLogger(CustomExtHandler.class);
 4
 5
 6     //捕获全局异常,处理所有不可知的异常
 7     @ExceptionHandler(value=Exception.class)
 8     Object handleException(Exception e,HttpServletRequest request){
 9         LOG.error("url {}, msg {}",request.getRequestURL(), e.getMessage());
10         Map<String, Object> map = new HashMap<>();
11         map.put("code", 100);
12         map.put("msg", e.getMessage());
13         map.put("url", request.getRequestURL());
14         return map;
15     }
16
17     /**
18      * 功能描述: 处理自定义异常类
19      * @return
20      *
21      */
22     @ExceptionHandler(value = BusinessException.class)
23     Object handleMyException(BusinessException e, HttpServletRequest request){
24         //f返回json数据
25         Map<String, Object> map = new HashMap<>();
26         map.put("code", e.getCode());
27         map.put("msg", e.getMsg());
28         map.put("url", request.getRequestURL());
29         return map;
30     }

全局异常捕获

3、使用

1 throw new BusinessException("200","出错了啊!");

原文地址:https://www.cnblogs.com/rolayblog/p/11237259.html

时间: 2024-08-28 14:59:39

spring boot2.0+中添加全局异常捕获的相关文章

Spring 框架——利用HandlerExceptionResolver实现全局异常捕获

https://blog.csdn.net/qq_22172133/article/details/82147630 微信一.需求描述        因为在项目中,我们不可否认的会出现异常,而且这些异常并没有进行捕获.经常出现的bug如空指针异常等等.在之前的项目中,如果我们没有进行任何配置,那么容器会自动打印错误的信息,如果tomcat的404页面,400页面等等.如果我们在web.xml中进行如下配置,就会拦截错误,然后跳转到指定的错误页面. <error-page>    <err

ASP.NET Core Web API中实现全局异常捕获与处理

处理全局异常 HANDLING ERRORS GLOBALLY 在上面的示例中,我们的 action 内部有一个 try-catch 代码块.这一点很重要,我们需要在我们的 action 方法体中处理所有的异常(包括未处理的).一些开发者在 action 中使用 try-catch 代码块,这种方式明显没有任何问题.但我们希望 action 尽量保持简洁.因此,从我们的 action 中删除 try-catch ,并将其放在一个集中的地方会是一种更好的方式..NET Core 给我们提供了一种处

spring boot2.0+ 中配置log4j日志

1.maven引入包,排除默认日志 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter</artifactId> 4 <exclusions> 5 <exclusion> 6 <groupId>org.springframework.boot</groupId>

C#中的那些全局异常捕获

1.WPF全局捕获异常 public partial class App : Application { public App() { // 在异常由应用程序引发但未进行处理时发生.主要指的是UI线程. this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException); //  当某

Spring-MVC开发之全局异常捕获全面解读(转)

异常,异常.我们一定要捕获一切该死的异常,宁可错杀一千也不能放过一个!产品上线后的异常更要命,一定要屏蔽错误内容,以免暴露敏感信息!在用Spring MVC开发WEB应用时捕获全局异常的方法基本有两种: WEB.XML,就是指定error-code和page到指定地址,这也是最传统和常见的做法 用Spring的全局异常捕获功能,这种相对可操作性更强一些,可根据自己的需要做一后善后处理,比如日志记录等. SO,本文列出Spring-MVC做WEB开发时常用全局异常捕获的几种解决方案抛砖引玉,互相没

自定义全局异常捕获

原文:http://blog.csdn.net/jinzhencs/article/details/51700009 第一种:实现HandlerExceptionResolver 注意: 把错误码 重设成200,不然还是返回的异常信息. 注解@Compoment交由spring创建bean 之后就能愉快的返回自己的错误码了. 或者记录错误日志. /** * 全局异常捕获 * @author Mingchenchen * */ @Component public class GlobleExcep

T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw)

原文:T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw) 本文出处: http://www.cnblogs.com/wy123/p/6743515.html T-SQL编程与应用程序一样,都有异常处理机制,比如异常的捕获与异常的抛出(try catch throw),本文简单介绍异常捕获与异常抛出在T-SQL编程中的实际使用 . 异常处理简单说明 异常捕获在应用程序编程中非常常见,提供了处理程序运行时出现的任何意外或异常情况的方法刚毕业的时候对于异常处理迷茫不解,

Spring-MVC开发之全局异常捕获全面解读

在用Spring MVC开发WEB应用时捕获全局异常的方法基本有两种, WEB.XML,就是指定error-code和page到指定地址,这也是最传统和常见的做法 用Spring的全局异常捕获功能,这种相对可操作性更强一些,可根据自己的需要做一后善后处理,比如日志记录等. SO,本文列出Spring-MVC做WEB开发时常用全局异常捕获的几种解决方案抛砖引玉 互相没有依赖,每个都可单独使用! 定义服务器错误WEB.XML整合Spring MVC web.xml <error-page> <

Spring Boot2.0之 监控管理

Spring boot监控中心: 针对微服务的服务状态,服务器的内存变化(内存.线程.日志管理等)检测服务配置连接地址是否有用(有些懒加载的情况下,用的时候发现卧槽不能用)模拟访问,懒加载.统计有多少个bean(Spring 容器中的bean).统计Spring MVC 中@RequestMapping(统计接口数) Actuator监控应用(无界面,返回json格式) AdminUi底层使用Actuator监控应用,实现可视化界面 Actuator是spring boot的一个附加功能,可帮助