1.填空题
(1)实际情况中可能出现的程序错误是很多的,但是它们基本上可以分为两种类型:一种是 ,另一种是 。
(2)Java程序不能正常执行可以分为两种情况: 和 。
通常是指程序本身存在的非法的情形,这些情形常常是因为代码存在的问题而引起的。而且,编程人员可以通过对程序进行更仔细的检查,尽可能地减少这些问题。 则表示另外一种“非同寻常”的错误,这种错误通常是不可预测的。
(3)常见的异常情况包括 、 等。
(4)异常的处理主要包括 、 和 等。
(5)Java中所有的异常都由类来表示,所有的异常都是从一个名为 的类派生出来的。因此,当程序中发生一个异常时,就会生成一个异常类的某种类型的对象。
(6)Java异常处理是通过5个关键字来管理的。它们是 、 、
、 和 。
2.选择题
(1)Throwable有两个直接子类,分别是 和 。
A.Exception和Object B.Exception和Error
C.Object和Error D.LinkageError和VitualmanchineError
(2) 用于找不到类或接口所产生的异常。
A.ClassNotFoundException B.CloneNotSupportedException
C.IllegaAccessException D.InstantiationException
(3)在Java程序里,异常对象是依靠 语句来捕获和处理的。
A.try/throw B.throw/final C.try/catch D.catch/final
(4)直接抛出异常的格式为 。
A.try { B.catch (ExceptionObject e)
C.throws newExceptionObject; D.throw newExceptionObject;
(5)当Java虚拟机崩溃了或用尽了它继续操作所需的资源时,抛出VitualmachineError,下列错误中哪一个不属于VitualmachineError?
A.InternalError B.OutOfMemoryError
C.LinkageError D.UnknownError
3.问答题
(1)列出5个常见的异常。
(2)什么是异常?什么是异常处理?
(3)异常(Exception)和错误(Error)有什么不同?Java如何处理它们?
(4)试述finally语句块的功能及特性。
4.上机操作题
(1)创建这样一个程序,它企图引用一个指向空值的变量,并尝试用一个不正确的下标去访问一个数组,如用一个负的下标值在一个字符串中得到一个字符。执行这个程序并描述所看到的错误信息。
(2)创建一个double stringToDouble(String number)方法,试图把输入的字符串转换成double型的数值,在可能会出现问题时抛出一个异常。采用适当的捕获机制来捕获异常。
(3)创建一个DoubleField类,它类似于TextField,但它把输入框中的字符串作为double类型的值返回;若字符串不能表示一个double类型值,它将返回一个默认值。可以把这种输入框用于具有某种复杂功能的Applet中,使它继承TextField类。除了继承的getText( )和setText( )方法外,还要添加getNumber( )和setNumber( )两个方法,用它们来返回合适的值。如有必要,还要捕获任何错误。