有效Java异常文章描述了一个应该是processCheck()
的CheckingAccount
。此外,它还指出:
用Java表示应急响应的自然方法是定义两个异常,比如
StopPaymentException
和InsufficientFundsException
对我来说,这听起来像是用于流控制的异常。请解释一下为什么在这里使用检查过的异常来控制流量是可以的吗?(或者这是否不是流控制的情况。)
发布于 2013-01-15 10:50:07
异常,特别是检查过的各种异常,对于流控制来说是完美的,但只适用于特殊情况:如果异常是每次运行代码时可预见发生的情况,因为它是“愉快的一天场景”的一部分,只有这样,您才会误用它们。这方面的典型示例是使用while (true)
循环迭代数组,并依赖于ArrayIndexOutOfBounds
来破坏它。
另一个例外处理的问题是“带外信令”,在这种情况下,您已经占用了“欢乐日”数据的方法返回值,并且您需要另一个可分辨的通道来指示没有数据可返回的原因。在Haskell/Scala中,您将使用可能的monad;在Java中,您最好坚持检查异常。
发布于 2013-01-15 11:02:23
不是
不要在流程控制中使用异常。当服务器处于高负载状态时,抛出异常会使服务器更慢、更慢。
https://stackoverflow.com/questions/14336051
复制相似问题