java – 业务逻辑中推荐的不必要的错误处理?例如.空检查/百分比限制检查等
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 业务逻辑中推荐的不必要的错误处理?例如.空检查/百分比限制检查等,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2194字,纯文字阅读大概需要4分钟。
内容图文
![java – 业务逻辑中推荐的不必要的错误处理?例如.空检查/百分比限制检查等](/upload/InfoBanner/zyjiaocheng/748/950057e455fd43648e2571e59279b486.jpg)
我们通常会在业务逻辑中进行不必要的检查以避免失败.
例如.
1. public ObjectABC funcABC(){
ObjectABC obj = new ObjectABC;
..........
..........
//its never set to null here.
..........
return obj;
}
ObjectABC o = funABC();
if(o!=null){
//do something
}
如果我们确定它永远不会为null,为什么我们需要这个null检查?
这是一个好习惯吗?
2. int pplReached = funA(..,..,..);
int totalPpl = funB(..,..,..);
funA() just puts a few more restriction over result of funB().
Double percentage = (totalPpl==0||totalPpl<pplReached) ? 0.0 : pplReached/totalPpl;
我们需要’totalPpl< pplReached'检查吗? 问题是:我们不是通过进行此类检查来吞下一些基本问题吗?通过进行这些检查可以避免理想地显示的问题. 推荐的方式是什么?
解决方法:
想想你的观众.检查是值得的
>帮助您,程序员,检测错误,
>帮助其他程序员检测代码与您的代码相遇的错误,
>允许程序从错误输入或无效状态中恢复,或
>帮助维护者避免以后引入错误.
如果上面的空检查不属于这些,或者有一个更简单的机制可以做同样的事情,那么就把它留下来.
更简单的机制通常包括,
>单元测试.
>向读者传达意图的注释,可以通过findbugs或类似工具进行检查
>断言导致代码提前失败,并传达意图而不要求您输入永远不会达到的错误处理代码并且不会混淆代码覆盖工具
>文档或内联注释
在这种情况下,我建议添加注释
public @Nonnull ObjectABC funcABC(){
将findbugs集成到您的构建过程中,并可能替换
if(o!=null){
//do something
}
同
assert o != null: "funcABC() should have allocated a new instance or failed."
Aren’t we swallowing some fundamental issue by putting such checks?
根据经验,
>单元测试有助于检查一小段代码的行为.如果你不能为重要的功能编写单元测试,那么根本问题在于你不是writing testable code.
>注释有助于向代码审阅者,维护者和自动化工具传达意图.如果您尚未将这些工具集成到流程中,那么根本问题在于您没有利用可用的代码质量工具.
>断言有助于仔细检查您的假设.如果您无法将断言汇集到您的代码中并快速告知哪些被侵犯,那么您的根本问题就是您没有快速的方法来针对代表性数据运行代码以解决问题.
>文档和内联注释(包括源代码控制注释)有助于在团队中传播有关系统的知识 – 确保团队中的多个人可以解决代码的任何部分中的问题.如果它们经常丢失或不同步,那么潜在的问题是你不是在考虑使用维护者来编写代码.
最后,design by contract是一种编程方法,许多人发现它对业务逻辑代码很有用.即使您无法说服您的团队采用特定的工具和实践,阅读DbC仍然可以帮助您推理并解释如何在代码库中强制执行重要的不变量.
内容总结
以上是互联网集市为您收集整理的java – 业务逻辑中推荐的不必要的错误处理?例如.空检查/百分比限制检查等全部内容,希望文章能够帮你解决java – 业务逻辑中推荐的不必要的错误处理?例如.空检查/百分比限制检查等所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。