在Java中,编译器如何识别存在已检查的异常?我的意思是如何识别它?
答案 0 :(得分:5)
直接来自文档:
Java编程语言的编译器在编译时检查 通过分析,程序包含已检查异常的处理程序 检查异常可以由执行方法或 构造函数。对于每个检查的异常,这是可能的结果, 方法(§8.4.6)或构造函数(§8.8.5)的throws子句必须 提到该异常的类或其中一个超类 那个例外的类。这种编译时检查存在 异常处理程序旨在减少异常的数量 没有妥善处理。
未经检查的异常类是RuntimeException类 它的子类,以及类Error和它的子类。所有其他 异常类是检查异常类。 Java API定义 许多异常类,包括已选中和未选中的类。额外 可以声明异常类,包括已检查和未选中的异常类 程序员。有关异常类的说明,请参见第11.5节 层次结构和Java API定义的一些异常类 和Java虚拟机。
所以基本上它会查看代码,如果遇到异常,则查找异常的继承层次结构以确定它是否被选中或未选中。
答案 1 :(得分:1)
所有已检查的异常都有一个基类Exception
,而未经检查的异常会延伸RuntimeException
或Error
。