zoukankan      html  css  js  c++  java
  • 全局捕获异常(适用于SpringMvc,SpringBoot项目)

    @ControllerAdvice 是controller的一个辅助类,最常用的就是作为全局异常处理的切面类。约定了几种可行的返回值,可以返回String字符串,也可以返回ModelAndView,也可以返回自定义格式
    @ExceptionHandler(RuntimeException.class)表示拦截异常,这里拦截运行时异常。

    下面是我项目搭建时使用的,这俩返回json格式;也可以创建一个modeAndView 返回页面,抛出异常的时候,都会转到这个方法中来处理异常
    @ControllerAdvice 
    public class CustomExceptionHandler {
    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    public DataResult errorResult(Exception exception) {
    CustomException customException=null;
    //如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示。
    if(exception instanceof CustomException){
    customException=(CustomException)exception;
    }else{
    //如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)。
    customException=new CustomException("服务器运行异常,错误信息:"+exception.getMessage());
    }
    System.err.println(ExceptionUtil.getStackTrace(exception));
    //错误信息
    String message=customException.getMessage();
    //在这里也可以将错误记录在日志中。
    return DataResult.build(500, message);
    }
    }
  • 相关阅读:
    题解 P3842 【[TJOI2007]线段】
    题解 CF1366A 【Shovels and Swords】
    题解 CF1391D
    题解 CF1374B 【Multiply by 2, divide by 6】
    CSP-J2020爆零记
    YbtOJ20025 放置石子
    YbtOJ20001 立方数差
    [仅供参考]W-RB的码风及要求
    [敲黑板]CSP考试策略
    [水沝淼㵘]向量水解
  • 原文地址:https://www.cnblogs.com/sinuo/p/10889376.html
Copyright © 2011-2022 走看看