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

 

【视频 & 交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

网易云课堂视频最新更新

第十一章 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 这个方法肯定是抛出异常的,那么在控制台就可以看到我们全局捕捉的异常信息了

【视频&交流平台】

à Spring Boot视频

http://study.163.com/course/introduction.htm?courseId=1004329008

à Spring Cloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

更多查看博客: http://412887952-qq-com.iteye.com/

=========================================================================

您的打赏是我最大的动力,打开微信或者支付宝扫描二维码向我打赏吧:


 (支付宝支付)



(微信支付)

猜你喜欢

转载自412887952-qq-com.iteye.com/blog/2291524