前后端分离项目中异常捕获美观处理


一、为什么要在后端中做异常捕获处理?

当我们的后端发生未知的系统错误,比如发生了Exception这个异常,如果我们没有对这个异常进行捕获处理的话,那么返回前端的就会是服务器500啊之类的,就将我们原生的错误直接暴露在了我们的用户面前,这样做是非常不雅观的。
比如我在后端有一个接口:
在这里插入图片描述
我在里面写了一个错误。然后我们前端去访问这个接口试试
在这里插入图片描述
在这里插入图片描述
我这里vue-admin-template中已经做好了对后端响应的处理,这样做已经比直接浏览器变成错误页面,报500错误好太多了。

但是我们看到前端还是不美观啊,那怎么做,我们想要的效果应该是
上面图片中提示框中信息是后台返回给前台的错误信息啊,比如什么“没有权限”之类的


二、后端如何捕获异常?

新建一个类用于捕获异常

@RestControllerAdvice
@Slf4j
public class DefaultExecption{

	//这里写上我们要捕获的异常类	
    @ExceptionHandler(ArithmeticException.class)
    public Result arithmeticExceptionHandler(ArithmeticException e, HttpServletRequest request){
        String uri = request.getRequestURI();
        log.error("请求地址:"+uri+"发生异常"+e.getMessage());
        return Result.fail(e.getMessage());
    }
    //后面还能继续写其他要捕获的异常,最好把最大的异常Execption加在末尾,这样不会漏过任何异常
}

然后我们前端去访问一下试试:
在这里插入图片描述
这里错误信息发生了变化,当然/by zero对于客户来讲不一定知道啥意思,所以我们可以将最后改成

Result.fail("服务器发生了错误")

这样处理好看多了。
另外看我们的后端:
在这里插入图片描述
是不是也没有直接的报错信息了,这样美观多了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gunalaer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值