• SpringBootWEB项目和非Web项目的全局异常捕获


    一、简介

      SpringBoot的WEB异常捕获,如果是WEB项目的话,可以直接处理Controller中的异常。如果不是WEB项目的话,就需要使用AspectJ来做切面。

    二、WEB项目

    package com.test.handler;
    
    import lombok.extern.log4j.Log4j2;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    
    
    @ControllerAdvice
    @Log4j2
    public class GlobalExceptionHandler {
        @ExceptionHandler(value = Exception.class)
        public String exception(Exception e, Model model){
            log.error("find exception:e={}",e.getMessage());
            model.addAttribute("mes",e.getMessage());
            return "pages/500";
        }
    }

    三、非WEB项目

    package com.test.syncbackend.handler;
    
    import lombok.extern.log4j.Log4j2;
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.Around;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Pointcut;
    import org.springframework.stereotype.Component;
    
    @Component
    @Aspect
    @Log4j2
    public class GlobalExceptionHandler {
    
        @Pointcut("execution(* com.test.syncbackend.scheduleds.*.*(..))")
        public void pointCut() {
        }
    
        @Around("pointCut()")
        public Object handlerException(ProceedingJoinPoint proceedingJoinPoint) {
            try {
                return proceedingJoinPoint.proceed();
            } catch (Throwable ex) {
                log.error("execute scheduled occur exception.", ex);
            }
            return null;
        }
    }
  • 相关阅读:
    os.path.basename()和os.path.splitext()
    关于pytorch中@和*的用处
    Python | os.path.join() method
    SURF (Speeded Up Robust Features,加速稳健特征)
    Canny算子
    医学影像中常见名词解释
    sigmod、tanh、ReLU激活函数的实现
    plt.gca()坐标轴移动
    损失函数和梯度下降解释
    torch和numpy的相互转换
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/9718670.html
Copyright © 2020-2023  润新知