- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我有类似“程序员的OCD”的东西。我希望自己的代码既美观又简洁,并且希望它“完美”(例如正确正确地处理所有可能的情况)。我经常发现自己花费大量时间一次又一次地遍历相同的领域,以查看可以在哪些方面进行优化以及在哪些方面可以做到万无一失。
因此,当尝试使用...捕获块时,我对封装内容有些偏执。我的意思是,我应该在哪里划清代码应满足的条件?以文件处理为例。我是否应该将每个该死的文件操作放在try ... catch块中,以防万一可能发生(文件被应用程序外部的某人/某物锁定,磁盘损坏等)?
有时,它使我感到不安,可能是有些东西(我什至不知道)可能会使某些代码崩溃。
编辑:
我不是在谈论使用try ... catch涵盖糟糕的编程,而是在谈论本来可以正确实现的操作和过程,但是要依靠我无法控制的其他因素-即使它们可能是晦涩(这就是重点),并且只会在我没有预料到的极其“不幸”的情况下发生。
文件处理就是一个明显的例子。当我倾向于抖动时,就是想知道内置功能的幕后将进行什么样的处理,以及它如何响应我的代码。
这是一个例子:
Dim serverUrl as String = My.Settings.ServerUrl
最佳答案
我是否应该将每个该死的文件操作放在try ... catch块中,以防万一可能发生(文件被应用程序外部的某人/某物锁定,磁盘损坏等)?
通常,是的。
必须处理的异常
文件操作本质上是不安全的,使用时可能会崩溃。考虑以下情况:您正在读取存储在USB存储设备上的文件,并且在读取过程中用户拔出了USB记忆棒。
这将引发异常,您需要提防该异常。在您提到的特定示例中也是如此。
另一方面,通常只有高层代码需要处理这种错误,而不是业务逻辑中深处的代码。通常可以让方法失败并传播由于IO故障而导致的异常。只是重要的是要防止该异常导致应用程序崩溃,并通知用户出了点问题,或者重试,或者采取规避措施。
哪些层处理异常?
An article from 2003 by Ned Batchelder解释了代码的哪些部分应防止出现异常,而哪些则不应:
他将代码分为三层:
StackOverflowException
(您不能!)或
OutOfMemoryException
(您通常不能)。
关于.net - .Net:尝试…捕捉偏执狂-它在哪里结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044419/
我是一名优秀的程序员,十分优秀!