开发中是否所有异常都需要抛出?

本文探讨了在复杂的互联网场景下,如何合理地处理程序中的异常。强调并非所有异常都需要抛出,特别是那些不影响业务流程的异常。文章提出了记录异常并继续执行流程的策略,并举例说明在特定情况下如何采取更灵活的异常处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发中遇到异常很多同学一般是进行抛出处理.那么我们程序开发中的异常是否都需要抛出呢?大家请思考一下这个问题.

一般我们会有个困惑,一般异常不都是抛出处理,再最外层捕获或者由AOP框架捕获统一转换为自定义异常后返回前端.这样处理是一个一般的方法.但在互联网场景越来越复杂的情况下,这样处理方法就不是特别的适用了.

在整个流程中,一些对这个流程并不起关键做用的业务发生异常,并不一定需要抛出,只需要记录次异常.让流程继续走下去,而不是走向失败! 例如在用户登录过程中,需要向风控系统推送用户登录的记录.假如用户信息验证和其他一些关键验证并没有出问题,由于风控系统在进行发布,服务暂时不可用,导致了服务的依赖异常.那么这里要不要判定用户登录失败呢?显然可以更加灵活的处理此异常!这里只需要记录异常,或者在异常处理中将用户登录的动作放入消息队列中,异步话处理这个动作.后续再排查原因.

对于业务主流程的异常,当前流程不能继续流转,这类异常必须抛出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值