![]() |
1
8
这取决于语言。 每种语言都有自己的设计和习语。对于大多数语言,例外情况应该是例外的。 在C++语言、Java语言和C语言中,对任何其他事物使用异常是非常糟糕的形式。 在Python中,异常的使用频率更高,比如迭代的结束。尝试做你想做的事情,稍后处理异常,而不是验证输入(请求宽恕比许可更容易),这种模式有很多。例如,如果您想打开一个文件,在Java中,您可能首先检查它是否存在,然后打开它并检查是否有一个有效的流。在Python中,您将打开它并使用它。如果失败,您将处理异常。 从 wikipedia 文章:
|
![]() |
2
11
我会自然而然地说不。例外应用于 例外 状态,不适用于常规程序流。 |
![]() |
3
10
通常不会。ASP.NET将此用于
尽可能避免。如果你认为你绝对 有 要做到这一点,咨询两位同事,介绍设计方案,并询问他们是否能以某种方式更干净地完成设计。如果你们中没有人能想出更好的解决方法,那就用大量的文档来完成。 |
![]() |
4
3
顾名思义,异常只能在异常情况下使用。我不会用它来管理非错误的情况。 |
![]() |
5
2
不。 异常只应用于异常情况(如名称所述)。这意味着:错误。
|
![]() |
7
2
在我写的数独解算器中,如果问题是 解决了的 . 主搜索函数是一个私有方法,它通过对自身进行递归调用而下降到搜索树中。这个 正常的 case是未能解决难题,这只会导致对调用方的正常返回;case 例外 case是解决难题的成功方法,在这种情况下,我们将“throw(solution)”一路抛出到公共方法中的catch子句。
我很高兴听到任何人对这种方法的赞成或反对意见。 |
![]() |
8
1
不。 一般来说,系统设计用于快速处理非异常情况,而接受异常情况会影响性能。因此,许多被抛出/捕获的异常将比常规构造慢。 它还使得分析和理解代码变得更加困难,而且大多数代码将大部分时间花在维护上。 |
![]() |
9
1
我相信有时候例外情况对建筑很有用 DSL 我知道,这听起来很奇怪,但是很多语言都没有Ruby的特性(返回关键字是可选的,因为返回了最后一个计算表达式的结果),所以我们尽可能地使用它。 例如,我最近尝试构建一个小的javascript测试框架,我希望框架用户能够说:
而不是:
这些函数将是库函数,它们抛出异常,例如skiptest异常。唯一推荐使用它们的地方是内部测试方法。这些测试方法总是在try/catch块中执行,在该块中处理每种类型的异常,并且根据异常情况,框架采取适当的步骤。 这是我在控制流中使用了异常的一个例子。 下面是一个小例子:
|
|
M.Jane · 组织和编写异常类的正确方法 7 年前 |
![]() |
shubham daharwal · java中的内部捕获异常 7 年前 |
![]() |
Jon · 如何在不需要任何操作的情况下处理Python异常 7 年前 |
![]() |
felix1415 · C++捕获(标准::异常和e)与捕获(…) 7 年前 |
![]() |
k0pernikus · 如何在scala中键入可能引发异常的函数? 7 年前 |