为什么未经检查的异常在已检查的异常未在Java中传播时传播?我用谷歌搜索,但没有找到任何令人满意的解释。
答案 0 :(得分:1)
检查异常需要使用throws子句指定,而未经检查的异常会自动传播。为什么呢?
因为他们是如何设计的。想法是有一类异常(检查异常)方法可以声明调用代码是允许(通过显式处理或显式声明),以及另一类异常(未经检查的异常)调用代码不必须明确允许。后者适用于“内存不足”等问题。等等(代码无法做任何事情的事情)和NullPointerException
之类的东西(编程错误的东西应该在测试中被捕获;几乎每个方法都需要如果它是一个经过检查的例外,则声明它。)
效果如何取决于你问的是谁,但这就是想法。