`

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 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 Boot1

    【从零开始学Spring Boot】是一本旨在帮助初学者快速入门Spring Boot的教程。Spring Boot是Spring框架的一个扩展,它简化了Java应用的初始搭建以及开发过程,通过自动配置、starter依赖等方式,使得开发者可以快速地...

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建.docx

    在本文中,我们将详细介绍如何从零开始搭建一个基于Spring Boot的开发环境,其中包括Spring Boot、Mybatis和Swagger2的集成。首先,让我们了解为何选择Spring Boot。 **为什么使用Spring Boot** Spring Boot是...

    spring boot 中文文档

    在文档的“开始”部分,介绍了Spring Boot的基础知识,包括系统要求、安装方法以及如何创建和运行第一个Spring Boot应用。系统要求部分会详细说明支持的Servlet容器。Spring Boot安装包括了为Java开发者准备的安装...

    从零开始搭建SpringCloud第四节源码及截图

    总的来说,从零开始搭建Spring Cloud涉及到的关键知识点包括:Spring Boot基础、Eureka服务注册与发现、服务提供者与消费者、Feign客户端、Hystrix断路器、Actuator监控以及项目构建和配置。通过这些知识点的学习和...

    Spring boot(一): 入门篇.rar_springboot

    Spring Boot 的目标是让开发者能够快速地从零开始开发项目,而不必关注基础架构的配置。 2. **起步依赖(Starters)**: Spring Boot 的核心特性之一是起步依赖,它们是一系列 Maven 或 Gradle 的依赖模块,用于...

    从零开始搭建SpringCloud第二节源码及截图

    在本教程中,我们将深入探讨如何从零开始搭建Spring Cloud框架。Spring Cloud是一个全面的微服务解决方案,它为开发者提供了快速构建分布式系统中的一些常见模式,如配置管理、服务发现、断路器、智能路由、微代理、...

    从0写一个问卷调查APP后端spring boot基础框架

    以下将详细介绍如何从零开始构建这个框架。 1. **环境配置**: - 首先,确保安装了JDK,并将版本设置为1.8或以上,因为Spring Boot 2.x版本主要支持Java 8及以上。 - 安装Maven或Gradle作为项目构建工具,Spring ...

    基于Spring Boot框架的权限管理系统4608ed516072070e2f3a230e5566cc99.zip

    系统从零开始搭建,集成了Vue、Element UI、Axios等前端技术,以及Spring Boot、Spring Security、JWT、MyBatis Plus等后端技术。系统主要功能包括用户管理、角色管理、菜单管理等,支持动态加载权限菜单和多方式...

    spring boot入门

    Spring Boot提供了大量的自动化配置,帮助开发者减少样板代码和配置文件的编写,使得从零开始创建一个独立的、生产级别的Spring基础应用变得更加容易。 Spring Boot的几个核心知识点如下: 1. **Spring Boot简介**...

    GitChatLesson-SpringBootStudy:CSDN GitChat达人课《跟武哥一起学Spring Boot》

    通过这个课程,学员将能从零开始,逐步建立起对Spring Boot的全面认知,并能独立开发出功能完备的应用。通过阅读和实践"GitChatLesson-SpringBootStudy-master"中的源代码,将有助于巩固理论知识并提升实际操作能力...

    spring-boot-mybatis-plus 一套打通 有注释 打开就可使用

    这样的项目通常包含完整的配置和示例代码,使得开发者可以立即上手,无需从零开始配置环境。 描述中提到的是最新版本的Spring Boot 2.x和MyBatis Plus。Spring Boot 2.x带来了许多改进和新特性,比如更好的性能、新...

    从零开始搭建SpringCloud第六节源码及截图

    在本节中,我们将深入探讨如何从零开始搭建SpringCloud,这是一个流行的微服务框架,用于构建分布式系统。通过源码分析和截图辅助,我们可以更好地理解SpringCloud的核心组件和配置过程。 首先,我们要了解Spring...

    Spring boot 总结

    在 Spring Boot 出现之前,使用传统的 Spring 开发时,随着项目规模的增大,XML 配置文件变得异常庞大,维护成本非常高。为了解决这一问题,Spring 在 3.0 版本后开始强调“约定优于配置”的设计理念。而 Spring ...

    spring-boot-sample-Redis.zip_ownerrn7_springboot Demo

    通过对这些文件的理解,我们可以推断这个项目提供了从零开始集成Redis到Spring Boot应用的完整示例,包括配置、代码实现和测试。学习这个示例可以帮助开发者更好地理解如何在实际项目中使用Spring Boot和Redis,提升...

    SpringBoot注册Servlet的三种方法详解

    import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; public class RegisterServlet extends HttpServlet { // ... } @Bean public ...

Global site tag (gtag.js) - Google Analytics