首页 > 其他分享 >spring boot——请求与参数校验——重要概念——异常处理——@ControllerAdvice注解

spring boot——请求与参数校验——重要概念——异常处理——@ControllerAdvice注解

时间:2023-01-21 23:56:28浏览次数:39  
标签:Exception ControllerAdvice spring MyException boot import org 异常 public

 

 

 

 

PS,访问资源,引入如下:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

 

 

 

 

 

 

 

 

 

自定义注解:

package org.example.Exception;

public class MyException extends Exception
{

    private static final long serialVersionUID = 1L;


    public MyException()
    {

        super();
    }


    public MyException(String message)
    {

        super(message);
    }
}

 

 

 

 

 

 

 

设置全局异常类:

package org.example.controller.GlobalExceptionHandler;

import org.example.Exception.MyException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import java.sql.SQLException;

@ControllerAdvice
public class GlobalExceptionHandlerController
{
    @ExceptionHandler(value=Exception.class)
    public String handlerException(Exception e)
    {
        //数据库异常
        if (e instanceof SQLException)
        {

            System.out.println(e.getMessage());

            return "sqlError";
        }
        else if (e instanceof MyException)   //自定义异常
        {

            return "myError";
        }
        else          //未知异常
        {
            return "noError";
        }
    }
}

 

 

 

 

 

 

 

设置controller,用于访问并引发异常:

package org.example.controller.GlobalExceptionHandler;

import org.example.Exception.MyException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.sql.SQLException;

@Controller
public class HandleExceptionController
{
    @RequestMapping("/f123")
    public String index()
    {

        return "index";
    }

    @RequestMapping("/db")
    public void db() throws SQLException
    {

        throw new SQLException("数据库异常");
    }

    @RequestMapping("/my")
    public void my() throws MyException
    {

        throw new MyException("自定义异常");
    }

    @RequestMapping("/no")
    public void no() throws Exception
    {

        throw new Exception("未知异常");
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:Exception,ControllerAdvice,spring,MyException,boot,import,org,异常,public
From: https://www.cnblogs.com/xiaobaibailongma/p/17064103.html

相关文章