哪个类是所有异常的基础类
Which class is a base class for all Exception?(哪个类是所有异常的基础类?)
(a)String
(b)Error
(c)Throwable
(d)RuntimeException
考点:考察求职者对Java异常机制的理解和掌握。
出现频率:★★★★
【面试题解析】
Java不是第1种支持异常语义的语言,却是第1种通过编译器来执行声明和处理某些异常的语言。大部分开发者都认为编译时的异常检查对精确的软件设计颇有帮助。如图1所示显示了Java异常处理系统。
图1 Java语言的异常处理体系
Java中的异常也是对象。所有的异常类都派生于java.lang.Throwable类。图1正是表明了Throwable类所派生类的部分层次结构。两个主要的子类Exception类和Error类构成了Java的异常处理体系。
1.Throwable类
Throwable类是Java语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过Java虚拟机或者Java throw语句抛出。Error和Exception是Throwable类的两个子类实例。
2.Error类
Error是Throwable的子类,表示程序本身无法恢复的严重错误,用于指示应用程序的严重问题。在执行该方法期间,无需在方法中通过throws声明Error的任何子类,因为Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。
3.Exception
Exception类及其子类是Throwable的一种形式,它指出了应用程序想要捕获的异常,是程序本身可以处理的异常。
4.RuntimeException
RuntimeException是那些可能在Java虚拟机正常运行期间抛出的异常的超类。
以上是对有关异常API的一个简单介绍,用法都很简单,关键在于理解异常处理的原理,具体用法参看Java API文档。参考答案:(c)。