【Java】为什么上面的异常不需要处理,但是下面的异常需要处理呢?

发现一个挺有意思的问题,为什么上面的异常不需要处理,但是下面的异常需要处理呢?

不需要处理

img

需要处理

img

Exception分为运行时异常(RuntimeException及其子类)和非运行时异常(Exception子类中,除了RuntimeException及其子类之外的类)
非运行时异常是需要捕获处理的

因为上面一个是RuntimeException(运行期异常),下面一个不是,运行期异常只有运行时才能知道,所以不需要显式捕获,非运行期异常是可预知的异常,要么继续往上抛出,要么就要显示捕获