记一次try-catch代码排查的问题

本文分享了一次debug经历,讨论了不当使用try/catch导致异常信息丢失的问题,并提出了正确的异常处理策略。

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

今天中午,经理给分了一个小bug,当时debug进去,发现没啥明显的问题,但是也的确是有问题,提示框中的%s没有替换成后面的内容,后来也没找到(丢人了),还是经理给解决了,在throw 异常的外面用了try/catch,catch里面又抛了一个异常,结果就是之前的异常信息没有显示,catch最后抛的异常信息又没有可以替换%s的信息,所以就造成了这样的后果。

现在想想也是,try/catch的话会把之前的所有异常都在catch里面处理,这里面处理的话就有可能覆盖原异常,导致出错。

看图可以看出来,之前的异常到了catch里面就只有ex的信息了,%s是无法被替换了。去掉try/catch之后,就达到了效果。

当然还有别的情况,可以直接在catch里面throw固定的异常信息,根据需求自己选择。

中午就那么一会,本来打算休息,结果来了个bug,不难,但是没改出来,然后就悲剧了。。。

中午不睡,下午崩溃,下午困的不行,后来又给了个bug,但是我在这边没有演示出来,沟通那边暂时还没结果,今天在看看吧(这本来是7.30号晚上要写的,结果拖到第二天早上了)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值