【发布时间】:2011-05-01 00:45:04
【问题描述】:
这是一个非常流行且众所周知的短语,您应该“只捕获/抛出异常的异常”。但是,“异常”异常是如何确定的呢?
例如,错误的密码在登录服务时非常常见,所以这并不例外。 Web 应用程序的统计数据可能会显示每 5 次尝试(来自没有特定用户)的错误登录尝试。同样,尝试在网上商店带着购物篮结账时,这可能很常见(尤其是对于新用户)。但是,未找到的文件可能会以任何一种方式进行。我通常按照这样的思路工作,如果一个方法缺少一些东西来完成它的工作,抛出一个异常,但是在这里它会变得有点混乱。在某些情况下,找不到文件可能很常见(例如,许多用户使用的文件共享没有严格控制),而在非常锁定的生产环境中缺少文件,这将是例外。
这是推断异常是否异常的正确方法吗?我可以轻松地将无网络连接等情况过滤为异常,但有些情况很难判断。是主观的吗?
谢谢
【问题讨论】:
-
普通不代表不应该引发异常。
-
这真的是一个众所周知的短语吗?它到底是什么意思?你在哪里看到有人定义它?您似乎要求定义这个 well known 短语的含义,但我认为它并不为人所知。我在谷歌搜索中找不到任何提及它。
-
但是,如果您的问题确实是——我的代码何时不应该处理异常(即 throw)。答案很简单:当发生您的代码无法恢复的事情时。 当然,和其他一切一样,这条规则也有例外(双关语)
标签: exception exception-handling