Java:避免异常作为控制流!
Paige 2019-11-22 来源 : 阅读 1205 评论 0

摘要:Java是一种通用的编程语言它有着许多不同的方案去解决一些特殊的问题。

Java是一种通用的编程语言它有着许多不同的方案去解决一些特殊的问题。


Java:避免异常作为控制流!


然而,其中既有需要被遵循的最佳做法,也有一些仍被普遍使用的不良做法。

用异常(Exceptions)作为控制流就是这些常见的不良做法中的一种。要避免使用这一方法的原因有二:首先,这会降低单位时间内代码的响应性能,同时代码也会非常难读懂。


举例


通过下面这个例子来看看异常是怎样被用作控制流的。这个代码的商业用例是:


Java:避免异常作为控制流!


如果用户提供了一个非空的名字给findAge 方法,那它会返回这个名字的长度。但是如果用户名为空,那么findUser方法会抛出NameNotFoundException,而在这种情况下,findAge 方法会返回0。


异常

那该如何重构这个代码来避免异常呢?老实说,有很多种办法可以实现,这里就只介绍一种。


Java:避免异常作为控制流!


为了找到异常对代码性能的影响,准备下面这个代码,其中两种实现都被执行了1000万次,Intel Core i7-3630QM CPU上运行时,异常花费了上千毫秒。


Java:避免异常作为控制流!

Java:避免异常作为控制流!


输出:


Java:避免异常作为控制流!

如果来比较一下这两种findAge方法的可读性,可以发现没有异常的那个十分清晰,不管findUser方法返回什么,findAge方法都会得到它的长度,我们也很确信findUser方法会返回一个字符串。


但是那个有异常的就会令人困惑,findUser方法返回不清晰,它可能返回一个字符串也可能抛出一个异常,而且这在方法的签名上是不可见的。正因为这样,函数式编程范式中不欢迎异常。


总结

最后,在碰到真正的异常情况时再使用异常会比较好。如果你将异常用作控制流,这可能会导致性能问题,代码的可读性也会减弱。


本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

专注专心完成每位候选人和客户的需求,您满意我开心!

  • 1
    推荐岗位
  • 2520
    人气
  • 100%
    受欢迎度

已有1人表明态度,100%喜欢该职业规划老师!

进入TA的空间
资讯动态 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
戈尔的文化秘诀
就业趋势 100% 的用户喜欢
互联网创始人:我发明了它,但是我现在后悔了
就业趋势 0% 的用户喜欢
那些常用的设计模式汇总
就业趋势 0% 的用户喜欢
2020年IT行业在物联网中的发展趋势是什么?
就业趋势 0% 的用户喜欢
6G已经开始研发,速率是5G的10至100倍!!
就业趋势 0% 的用户喜欢

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程