posts - 128,  comments - 21,  views - 26万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

 

代码如下:

复制代码
@ControllerAdvice
public class GlobalExceptionHandler {

    private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);

    /**
     * 处理Controller层通用 BusinessException 异常
     * 可以防止Controller未处理异常的程序中止,进行全局捕获
     *
     * @ExceptionHandler(value = Exception.class) 可以定义多个。
     */
    @ResponseBody
    @ExceptionHandler(value = Exception.class)
    public BaseResponse<?> exceptionHandler(Exception e) {

        String errorInfo = e + IOUtils.LINE_SEPARATOR + String.join(IOUtils.LINE_SEPARATOR, Optional.ofNullable(e.getStackTrace()).map(els -> Arrays.stream(els).map(el -> new StringBuilder().append("    定位:").append(el.getClassName()).append(".").append(el.getMethodName()).append("(").append(el.getFileName()).append(":").append(el.getLineNumber()).append(")").toString()).collect(Collectors.toList())).orElse(Collections.emptyList()));

        logger.error("====异常信息:{}", errorInfo);
        return BaseResponse.errorParameter(errorInfo);
    }

}
复制代码

 

执行效果:

    控制台打印效果:

 

    前端调用返回效果:

 

 

posted on   花开浪漫拾  阅读(96)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示