为什么在某些情况下需要try/catch而不是其他情况?

div*_*ges -2 java exception

我最近一直在做一些纯Java开发,我正在使用一个暴露少量方法的外部库,每个方法都有可能抛出一个Exception.

Eclipse不会让我编译我的程序,除非我将每个调用包装在一个try-catch块中.到目前为止,没什么大不了的.

然后我注意到了一些东西,比如ArrayList.add()抛出的东西IndexOutOfBoundsException.我怎么称呼这样的东西而不需要把它包裹起来try..catch呢?Obv,在这种特殊情况下,如果每次都必须这样做,那将是非常恼人的,但是try-catch在某些情况下是如何以及为什么强制实施的,而不是其他情况?

zw3*_*324 5

未经检查的异常(Error或的子类RuntimeException)不需要try..catch块,当没有时try...catch,该方法不需要声明自己throws(当然,你可以考虑声称throws这是一个好习惯).另一方面,已检查的确需要try...catch,或声明throws.