`

5. 全局异常捕捉【从零开始学Spring Boot】

阅读更多

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

 在一个项目中的异常我们我们都会统一进行处理的,那么如何进行统一进行处理呢?

新建一个类GlobalDefaultExceptionHandler

class注解上@ControllerAdvice,

在方法上注解上@ExceptionHandler(value = Exception.class),具体代码如下:

 

com.kfit.base.exception.GlobalDefaultExceptionHandler

package com.kfit.base.exception;

 

import javax.servlet.http.HttpServletRequest;

 

import org.springframework.web.bind.annotation.ControllerAdvice;

import org.springframework.web.bind.annotation.ExceptionHandler;

 

@ControllerAdvice

public class GlobalDefaultExceptionHandler {

   

    @ExceptionHandler(value = Exception.class)

    public void defaultErrorHandler(HttpServletRequest req, Exception e)  {

//      // If the exception is annotated with @ResponseStatus rethrow it and let

//      // the framework handle it - like the OrderNotFoundException example

//      // at the start of this post.

//      // AnnotationUtils is a Spring Framework utility class.

//      if (AnnotationUtils.findAnnotation(e.getClass(), ResponseStatus.class) != null)

//          throw e;

//

//      // Otherwise setup and send the user to a default error-view.

//      ModelAndView mav = new ModelAndView();

//      mav.addObject("exception", e);

//      mav.addObject("url", req.getRequestURL());

//      mav.setViewName(DEFAULT_ERROR_VIEW);

//      return mav;

      

      //打印异常信息:

       e.printStackTrace();

       System.out.println("GlobalDefaultExceptionHandler.defaultErrorHandler()");

 

       /*

        * 返回json数据或者String数据:

        * 那么需要在方法上加上注解:@ResponseBody

        * 添加return即可。

        */

       

       /*

        * 返回视图:

        * 定义一个ModelAndView即可,

        * 然后return;

        * 定义视图文件(比如:error.html,error.ftl,error.jsp);

        *

        */

  }

   

}

 

com.kfit.test.web.DemoController 加入方法:

@RequestMapping("/zeroException")

    public int zeroException(){

       return 100/0;

    }

访问:http://127.0.0.1:8080/zeroException 这个方法肯定是抛出异常的,那么在控制台就可以看到我们全局捕捉的异常信息了

 

 

【视频&交流平台】

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

微信公众号「SpringBoot最近更新:

 

206. Spring Boot 2.0 Swagger2:使用
205. Spring Boot 2.0 Swagger2:初识Swagger
当要离开的时候,我却动情了
205. jetcache:你需要知道的小技巧
204. jetcache:在Spring Boot中怎么玩?
遇见阿里,遇见自己
203. 阿里jetcache
202. 阿里Pandora Boot
微信公众号赞赏功能升级了,真的假的?
《喜剧之王》「我养你啊」之人生选择
201. Spring Boot JNDI:Spring Boot中怎么玩JNDI
510阿里日,马老师献上最走心、最科技范儿证婚词~
200. Spring Boot JNDI:在Tomcat中怎么玩JNDI?
199. Spring Boot JNDI:这是虾米?
Spring Boot 数据库迁移系列
Spring Boot葵花宝典:初露锋芒:MyBatis insert异常 Parameter 'name' not found
198. Spring Boot Flyway工作原理
21天习惯养成法则
197. Spring Boot 2.0数据库迁移:Liquibase
196. Spring Boot 数据库迁移:Liquibase
195. Spring Boot 2.0数据库迁移:Flyway
194. Spring Boot 数据库迁移:Flyway
193. Spring Boot 数据库迁移:概述

 搜索springboot或者扫描以下二维码即可关注:

 

(微信支付)

 

  • 大小: 68.4 KB
  • 大小: 58.9 KB
分享到:
评论
6 楼 林祥纤 2017-03-31  
浮生若梦e 写道
经 测试 @ControllerAdvice  捕获不到  全局的异常了。。。
不知道是不是版本问题 我用的1.2.7.RELEASE


现在都到1.5+了,建议使用新版本试下。
5 楼 浮生若梦e 2017-03-30  
经 测试 @ControllerAdvice  捕获不到  全局的异常了。。。
不知道是不是版本问题 我用的1.2.7.RELEASE
4 楼 浮生若梦e 2017-03-29  
第四课呢我的哥
3 楼 dj98986 2017-01-09  
各位哥,照着文章触发不了,后来把defaultErrorHandler(HttpServletRequest req, Exception e)改成defaultErrorHandler(Exception e)就能触发了,请问什么原因?
2 楼 林祥纤 2016-12-16  
yuchao2015 写道
这个不错


Thank you!
1 楼 yuchao2015 2016-12-16  
这个不错

相关推荐

    从零开始学Spring Boot1

    1.7 (5)全局异常捕捉【从零开始学Spring Boot】 .23 1.15 (13)处理静态资源(默认资源映射)【从零开始学Spring Boot】 .4

    从零开始学Spring Boot

    1.7 全局异常捕捉 1.8 Spring Boot datasource - mysql 1.9 JPA - Hibernate 1.10 使用JPA保存数据 1.11 使用JdbcTemplate 1.12 Spring Boot修改端口号 1.13 Spring Boot配置ContextPath 1.14 Spring Boot改变JDK...

    Spring Cloud Gateway的全局异常处理

    Spring Cloud Gateway的全局异常处理 Spring Cloud Gateway中的全局异常处理不能直接用@ControllerAdvice来处理,通过跟踪异常信息的抛出,找到对应的源码,自定义一些处理逻辑来符合业务的需求。 网关都是给接口做...

    SpringBoot学习笔记完整教程

    4. Spring boot 全局异常捕捉 5. Spring boot JPA 连接数据库 6. Spring boot 配置 JPA 7. Spring boot 整合 JPA 保存数据 8. Spring boot 使用 JdbcTemplate 保存数据 9. Spring boot 常用配置 10. Spring ...

    Spring Boot 系列教程6-全局异常处理

    Spring Boot 系列教程6-全局异常处理

    Spring Boot 全局懒加载机制.docx

    但是现在 spring boot 应用中引入了很多第三方 starter ,比如 druid-spring-boot-starter 数据源注入、spring-boot- starter-data-redis 缓存等默认情况下, 引入即注入了相关 bean 我们无法去修改添加 @Lazy 。

    Java异常介绍及Spring Boot统一异常处理

    Spring Boot 提供了统一的异常处理机制,通过使用 @ControllerAdvice 和 @ExceptionHandler 注解,可以实现对控制器层、Service 层、Dao 层以及 Spring 系统内定义的部分异常的统一处理。 在 Spring Boot 中,可以...

    详解Spring Boot2 Webflux的全局异常处理

    主要介绍了详解Spring Boot2 Webflux的全局异常处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    spring boot 和 freemaker 全局变量

    Spring MVC配置Freemarker全局变量,实现应用全路径

    Spring Boot中文文档.rar

    spring boot中文文档,从安装到部署。 I. Spring Boot文件 1.关于文档 2.获得帮助 3.第一步 4.使用Spring Boot 5.了解Spring Boot功能 6.转向生产 7.高级主题 II。入门 8.介绍Spring Boot ...

    sping boot 实战视频教程(百度云+源码+视频)

    10、全局异常捕捉_标清.flv 11、Spring Boot之Hello World访问404_标清.flv 12、 配置server信息_标清.flv 13、spring boot使用thymeleaf_标清.flv 14、Spring Boot 使用freemarker_标清.flv 15、Spring Boot...

    SpringBoot+SpringCloud面试题.doc

    Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于...

    Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式.zip

    因此,开始了这个 Spring Boot 专栏,一个深度且全面的 Spring Boot 2.X 入门。 在带你快速学会 SpringMVC API 接口的编写的同时,我还想告诉你还有全局返回、全局异常、拦截器、跨域处理等等功能。 在带你快速学会...

    Springboot全局异常处理demo.zip

    Springboot全局异常处理demo 项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的...

    Spring Boot Json 返回格式 + 全局异常处理 + 参数验证注解

    Spring Boot 统一返回结果集,内容包括在了 spring aop、spring boot 全局异常处理、自定义异常、注解开发

    Spring Boot-配置全局的异常捕获

    本文只是配置一个简单的全局的异常捕获,如有需要可以根据实际情况开发其它异常和自定义的异常。 web页面跳转 项目结构如下: MyExceptionHandler.java import javax.servlet.http.HttpServletRequest; import ...

    spring boot 实践学习案例,与其它组件整合

    - Spring Boot 基础知识,包括SpringBoot起步、配置详解、aop、filter、拦截器、监听、启动器、全局异常处理、外部Tomcat启动、HTTPS、监控 等。 - springboot-data - Spring Boot 数据库操作,包括SpringJDBC、...

    全局异常捕捉 c#WinForm异常处理

    这里建立了一个有关异常处理的对话框类,来实现异常的捕捉。通过使用ThreadException, App.CurrentDomain.UnhandledException捕捉程序里不可预知的异常,可以帮助开发者方便的找到发生异常的位置。

    全局异常捕捉

    全局异常捕捉类 在application的oncreate方法中加上 CrashHandler crashHandler CrashHandler getInstance ; crashHandler init this this ; 即可

Global site tag (gtag.js) - Google Analytics