• 生活小妙招免费各类生活中的小问题知识以及音乐简谱等,是你了解世界未知知识的好地方。

为什么很多程序员会用throw抛异常的方式来做业务消息提醒?

十万个为什么 空空 2024-3-25 12:18:08 2次浏览

关于问题为什么很多程序员会用 throw 抛异常的方式来做业务消息提醒?一共有 5 位热心网友为你解答:

【1】来自网友【解压神菌】的最佳回答:

如今服务器都是性能过剩。

看中的是接口耗时。

业务消息提醒往往在进入业务流程的开头进行校验的时候抛出,这在整条链路中耗时并不高。

如果有全链路跟踪的话,你就会知道往往在调用外部服务,查询数据库最耗时。

我也这么写代码,主要是代码可读性好。

不过我一般定义一个特定的业务异常,与其它异常进行区分,然后外层 catch 住。[抠鼻]

【2】来自网友【皮蛋 XXXXL】的最佳回答:

Exception 昂贵的部分

1,异常 new 的时候,比普通 bean 多个 fillinstacktrace,因此会多消耗点性能。

2,捕获(catch)的时候,链路 stack 过深或者有特殊处理需要消耗性能。

但是,这些考虑都是次要的,第一要考虑的是关注逻辑的正确性和效率性。第二是不要滥用 Exception 机制。

你截图代码我看过了,虽然有些写法有待加强,但是确定在用“异常处理异常”,谈不上滥用。因为异常在业务代码中是“小概率”事件,那么上述两点“昂贵”路径走不到,也就不昂贵了。

以后工作遇到这类纠结问题建议按照以下套路解决:

1,优先关注主体业务的正确性和效率。

2,尊重现状,不要过早优化。

3,关注整体优化效果,亲手做实验去验证它。

【3】来自网友【小生 xs】的最佳回答:

我都用 java 了还在意这一点服务器资源的消耗?

【4】来自网友【吟游诗人田不易】的最佳回答:

你难道写的业务全都走到了异常中吗?那你得反省下自己了。如果只是极少情况出异常,对效率的影响能有多大?过度设计需要吃药!

【5】来自网友【天行九五】的最佳回答:

如果这个流程一般走不到,就用异常也没问题。

喜欢 (0)