• @ControllerAdvice + @ExceptionHandler


    使用 @ControllerAdvice 注解处理全局异常
    实际开发中,需要对异常分门别类的进行处理,使用 @ControllerAdvice + @ExceptionHandler 注解能够处理全局异常,这种方式推荐使用,可以根据不同的异常对不 同的异常进行处理。
       使用方式:定义一个类,使用 @ControllerAdvice 注解该类,使用 @ExceptionHandler 注解方法
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.advice</groupId>
      <artifactId>ExceptionAdvice</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.RELEASE</version>
            <relativePath /> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <!-- 声明项目配置依赖编码格式为 utf-8 -->
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <fastjson.version>1.2.24</fastjson.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.webjars</groupId>
                <artifactId>jquery</artifactId>
                <version>3.3.1</version>
                
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
      
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </project>
    package com.tszr.exception.controller;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.RequestMapping;
    @Controller
    @ControllerAdvice
    public class GlobalException {
        private static final Logger log = LoggerFactory.getLogger(GlobalException.class);
    
        @RequestMapping("/exceptionMethod")
        public String exceptionMethod(Model model) throws Exception {
            model.addAttribute("msg", "没有抛出异常");
            int num = 1 / 0;
            log.info(String.valueOf(num));
            return "index";
        }
    
        /**
         * 描述:捕获 ArithmeticException 异常
         * 
         * @param model 将Model对象注入到方法中
         * @param e     将产生异常对象注入到方法中
         * @return 指定错误页面
         */
    
        @ExceptionHandler(value = { ArithmeticException.class })
        public String arithmeticExceptionHandle(Model model, Exception e) {
            model.addAttribute("msg", "除数不能是0哦");
            model.addAttribute("msgg", "@ExceptionHandler" + e.getMessage() + "除数不能是0哦");
            System.out.println("****************************");
            System.out.println("****************************");
            System.out.println(e.getMessage());
            System.out.println("****************************");
            System.out.println("****************************");
            System.out.println(model.toString());
            log.info(e.getMessage());
            return "error";
        }
    }
    package com.tszr.exception;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class ExceptionApplication {
        public static void main(String[] args) {
            SpringApplication.run(ExceptionApplication.class, args);
        }
    }

  • 相关阅读:
    The AllegroGraph Tutorial
    Using Prolog withUsing Prolog with AllegroGraph 7.1.0 AllegroGraph 7.1.0
    Prolog 语言入门教程
    Learn Prolog Now!:Chapter 3 Recursion
    What are OWL Ontologies?
    论文阅读:SkillMaN—A skill-based robotic manipulation framework based on perception and reasoning
    论文阅读:Knowledge-based instruction of manipulation tasks for industrial robotics
    Learn Prolog
    KnowRob安装过程中的相关问题记录
    Qt音视频开发17-海康sdk解码
  • 原文地址:https://www.cnblogs.com/tszr/p/15447913.html
Copyright © 2020-2023  润新知