【发布时间】:2015-06-04 16:32:52
【问题描述】:
这些天,我一直在努力学习java,但是我对抛出异常感到困惑。此语句正确吗?: 方法签名中的抛出导致异常(或某些异常)抛出到调用此方法的另一个方法。并且调用者方法有 try/catch 来处理抛出的异常。
提前致谢。 法罗克
【问题讨论】:
这些天,我一直在努力学习java,但是我对抛出异常感到困惑。此语句正确吗?: 方法签名中的抛出导致异常(或某些异常)抛出到调用此方法的另一个方法。并且调用者方法有 try/catch 来处理抛出的异常。
提前致谢。 法罗克
【问题讨论】:
Throws 子句用于声明异常,thow 关键字用于显式抛出异常。
这个link 有很好的关于 throws 和 throw 之间区别的信息,可以帮助你提高理解。
【讨论】:
这两种说法都不正确。
方法签名中的抛出导致异常(或某些异常)抛出到调用此方法的另一个方法
声明方法throws 异常只是表明它可能抛出异常,而不是它确实。
并且调用者方法有 try/catch 来处理抛出的异常。
调用者可以声明它抛出相同的异常,而不是尝试/捕获,因此异常会传播到该方法的调用者。
【讨论】:
catching 或通过throws 传播,这将处理异常的负担转嫁给调用者的调用者。我的第二点只是说 try/catch 不是唯一的选择。