已检查Java异常的定义?

Nik*_*ntz 6 java exception-handling exception

我看到一个定义可以是这样的:

通常,RuntimeExceptions是可以通过编程方式阻止的异常.

但这仍然不是已检查异常的定义.我认为已检查的异常是"可在编译时处理的异常".这是正确的和/或你能告诉我更多吗?

我也在网站上看过这个,你能解释一下这个引用吗?

许多人说不应该使用经过检查的异常(即你应该明确地捕获或重新抛出的异常).

Java:已检查vs未经检查的异常说明

我可以直接了解定义是什么吗?我也有些意外地读到了:

NumberFormatException未选中

但我认为这NumberFormatException是检查,因为我会在编译时处理它.你能帮我理解一下吗?我已经完成了一些Java编程,但我从未编写过自己的异常类,为什么我需要它呢? 在此输入图像描述

更新

给出的定义是Sierra/Bates的SCJP书:

在此输入图像描述

Ant*_*ony 7

已检查的异常定义为java.lang.Throwable(不包括Throwable本身)的任何子类,它不是java.lang.Error或的子类java.lang.RuntimeException.您看到的指南就是指南,旨在帮助您了解运行时异常的意图.

请参阅Java语言规范,第11.1.1节

未经检查的异常类是运行时异常类和错误类.

已检查的异常类是除未经检查的异常类之外的所有异常类.也就是说,已检查的异常类都是Throwable的子类,而不是RuntimeException及其子类和Error及其子类.