选择题 3.  以下能使用throw抛出异常的有______。
【正确答案】 A、D、E、F
【答案解析】 异常是指程序运行时(非编译时)所发生的非正常情况或错误,当程序违反了语义规则时,JVM就会将出现的错误表示为一个异常并抛出。这个异常可以在catch程序块中进行捕获,然后进行处理。而异常处理的目的则是为了提高程序的安全性与健壮性。
   Java语言把异常当作对象来处理,并定义了一个基类(java.lang.Throwable)作为所有异常的超类。在JavaAPI中,已经定义了许多异常类,这些异常类分为两大类,Error(错误)和Exception(异常)。
   违反语义规则包括以下两种情况:一种是Java类库内置的语义检查,例如,当数组下标越界时,会引发IndexOutOfBoundsException;当访问null的对象时,会引发NullPointerException;另一种情况是Java语言允许开发人员扩展这种语义检查,开发人员可以创建自己的异常类(所有的异常都是Java.lang.Thowable的子类),并自由选择在何时用throw关键字抛出异常。
   对于本题而言,其中Throwable为异常处理的基类,Error、Exception和RuntimeException都是Throwable的子类,因此,都能使用throw抛出。所以,选项A、选项D、选项E与选项F正确。