SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)

问题:使用@ExceptionHandle注解需要在每一个controller代码里面都添加异常处理,会咋成代码冗余

解决方法:新建一个全局异常处理类,添加@ControllerAdvice注解即可

package com.bjsxt.exception;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

/**
 * Created by Administrator on 2019/2/14.
 * 全局异常处理类
 */

@ControllerAdvice
public class GlobalException {
    /**
     * 处理ArithmeticException异常,该@ExceptionHandler注释的value属性可以是一个数组,
     * 然后再根据注入的exception判断对不同异常分别进行不同的处理,也可以写多个controller,
     * 对多个不同异常进行处理,这里采用第二种
     * @param e 会将产生异常对象注入到方法中
     * @return 该方法需要返回一个 ModelAndView:目的是可以让我们封装异常信息以及视图的指定
     */
    @ExceptionHandler(value = {ArithmeticException.class})
    public ModelAndView arithmeticExceptionHandler(Exception e){
        ModelAndView mv=new ModelAndView("error_arithmetic");
        mv.addObject("msg",e.toString());
        return mv;
    }

    /**
     * 处理NullPointerException异常
     * @param e 会将产生异常对象注入到方法中
     * @return 该方法需要返回一个 ModelAndView:目的是可以让我们封装异常信息以及视图的指定
     */
    @ExceptionHandler(value = {NullPointerException.class})
    public ModelAndView nullPointerExceptionHandler(Exception e){
        ModelAndView mv=new ModelAndView("error_nullPointer");
        mv.addObject("msg",e.toString());
        return mv;
    }
}

原文地址:https://www.cnblogs.com/duanrantao/p/10373107.html

时间: 2024-10-29 04:58:12

SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)的相关文章

SpringBoot学习(四)-->SpringBoot快速入门,开山篇

SpringBoot是伴随着Spring4.0诞生的,旨在简化开发. SpringBoot官方文档:http://spring.io/projects/spring-boot 写个示例:Hello SpringBoot 1.创建Maven工程 工程结构如下: 2.配置pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchem

SpringBoot学习之SpringBoot执行器

在以往的分布式开发当中,各个服务节点的监控必不可少.监控包含有很多方面,比如说:内存占用情况,节点是否健康等.在spring-boot会给我们提供相关资源监控叫做spring-boot-actuator, 通过执行器可以帮我管理和监控生产环境下的应用服务. 一.添加SpringBoot执行器的依赖 添加gradle配置依赖: dependencies { compile('org.springframework.boot:spring-boot-starter-actuator') } 二.关于

SpringBoot学习(2):底层源码架构分析引导类注解的具体实现

pom.xml文件 spring-boot-starter- parent 是当前项目的父级依赖 <parent>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-parent</artifactId>   <version>1.5.9.RELEASE</version> </parent> spri

SpringBoot读取配置值的方式

SpringBoot读取配置值的方式 方法一: @Value注解的方式取值 设定appliction.properties的配置信息 xiaoming.sex=boy xiaoming.age=18 xiaoming.score=98 使用@Value取值 @RestController public class PersonController { @Value("${xiaoming.sex}") private String sex; @Value("${xiaomin

SpringBoot学习(二)--&gt;Spring的Java配置方式

二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的: 1.@Configuration 作用于类上,相当于一个xml配置文件: 2.@Bean 作用于方法上,相当于xml配置中的<bean>: 2.示例 该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IO

SpringBoot系列: Spring支持的异常处理方式

===================================视图函数返回 status code 的方式===================================Spring 有一个专门的枚举类型 HttpStatus, 比如 HttpStatus.NOT_FOUND1. 视图函数返回 ResponseEntity 类型的对象. 2. 在 exception 类加注解 @ResponseStatus, 一旦视图函数抛出这个异常, Spring 就会自动返回设定的 statu

Springboot学习记录1--概念介绍以及环境搭建

摘要:springboot学习记录,环境搭建: 官方文档地址:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ 本机为Ubuntu 概念:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速

SpringBoot学习笔记(1):配置Mybatis

SpringBoot学习笔记(1):配置Mybatis 参考资料: 1.AndyLizh的博客 2.xiaolyuh123的博客 快速开始 添加Mybatis依赖(其他依赖已省去) <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId

Springboot学习笔记

Springboot学习笔记(一)-线程池的简化及使用 Springboot学习笔记(二)-定时任务 Springboot学习笔记(三)-常用注入组件方式 原文地址:https://www.cnblogs.com/yw0219/p/9060331.html