Error handling 在编写代码时,您是主动还是被动地处理错误?
换句话说,您是花时间预测错误并编写代码来绕过这些潜在问题,还是按照自己认为合适的方式编写代码,然后逐个问题解决任何错误 我最近一直在思考这个问题,我是一个非常被动的人。我编写我的代码,尝试一下,返回纠正错误并重复,直到应用程序按预期工作。然而,我的一位朋友表示,他花时间思考每一行是如何解释的,并在错误发生之前修复错误Error handling 在编写代码时,您是主动还是被动地处理错误?,error-handling,project,error-checking,Error Handling,Project,Error Checking,换句话说,您是花时间预测错误并编写代码来绕过这些潜在问题,还是按照自己认为合适的方式编写代码,然后逐个问题解决任何错误 我最近一直在思考这个问题,我是一个非常被动的人。我编写我的代码,尝试一下,返回纠正错误并重复,直到应用程序按预期工作。然而,我的一位朋友表示,他花时间思考每一行是如何解释的,并在错误发生之前修复错误 我必须指出,重新激活是纯粹的预激活。在我的应用程序上线之前,我一定要确保它正常运行 应该始终保持平衡 过多的错误检查速度慢,并导致垃圾代码。没有足够的错误检查会使您的程序在边缘情况
我必须指出,重新激活是纯粹的预激活。在我的应用程序上线之前,我一定要确保它正常运行 应该始终保持平衡 过多的错误检查速度慢,并导致垃圾代码。没有足够的错误检查会使您的程序在边缘情况下崩溃,这在交付后很难发现
因此,您可以决定某段代码的可靠性,并相应地实现错误检查。一些测试实用程序可能不是非常可靠-无错误检查。第三方搜索服务在深层后台使用的COM服务器应该是超级可靠的-更多的错误检查。我认为单独问这个问题有点奇怪,而且非常主观,但是显然有很多技术允许你做到每一个。我倾向于使用以下两种方法:
- 测试驱动开发(这似乎是主动的)
- 强大的静态类型(被动的,但是一个紧凑的迭代开发周期的一部分,如中所述,它是由我的ML编译器强制执行的,我编译了很多)
我还必须说,我重视编程中的许多先入为主的思想。避免bug的最简单方法是一开始就不要编写它们。有时这是不可避免的,但通常花多一点时间思考问题可以得到质量更好的解决方案,然后剩下的就可以用我上面提到的自动化方法来解决了。我通常会问自己一些编码时的“如果”,比如
- 用户单击按钮,如果他们没有选择日期怎么办
- 用户正在搜索框中键入内容,如果他们试图在其中键入html,该怎么办李>
- 我的标签文本取决于共享驱动器的值,如果它没有映射呢李>
等等。通过这样做,我发现当应用程序上线时,错误会减少很多,我可以专注于修复更多模糊的错误,而不是纠正本来应该存在的条件 在考虑错误处理时,我遵循一个简单的原则:垃圾输入,垃圾输出。如果你不想让任何垃圾(例如无效输入)弄乱你的软件,你必须找到软件中所有它可以进入并处理的点。当然,你的软件越复杂,就越难找到每一个切入点,但我觉得,你在前期做得越多,以后需要做的反应就越少。我提倡积极主动的方法
- 我试图以这种风格编写代码,从而产生可维护和可靠的代码
- 我使用防御性编程技术来防止由于注意力的丧失和类似的错误而在代码中出现愚蠢的错误
- 我根据fortress原理设计了数据库模型,SQL代码检查每次奇异操作后的结果
- 我想到了这部分代码可能会出现的潜在问题,我对此进行了解释。不是所有的可能性,而是我现在能想到的主要可能性