首页 理论教育 Java程序设计:运行时异常解析

Java程序设计:运行时异常解析

时间:2023-11-01 理论教育 版权反馈
【摘要】:java.lang.ArithmeticException:当出现异常的运算条件时,抛出算术异常。Exception又可分为编译异常和运行时异常,其中,编译异常是程序必须处理的,否则不能通过编译。JDK中,Exception 类中__________类及其子类用于表示运行时异常,其他子类都表示___________异常。

Java程序设计:运行时异常解析

在程序中应尽量避免产生RuntimeException异常。本节介绍几个常见的运行时异常:ArithmeticException、NullPointer Exception、ClassCastException、Number FormatException和ArrayIndex Out Of BoundsException。

(1)java.lang.ArithmeticException:当出现异常的运算条件时,抛出算术异常。例如,一个整数“除以零”时,抛出此类的一个实例。开发中可以通过逻辑判断来避免,如图5-13所示。

图5-13 ArithmeticException异常避免

(2)java.lang.NullPointer Exception:当应用程序试图在需要对象的地方使用null时,抛出空指针异常。例如,调用null对象的实例方法、访问或修改null对象的字段等。解决空指针异常,通常需要增加引用变量是否为null的判断,当值为非空时再进一步访问该引用变量所指向的对象。

例如:

该异常可以通过逻辑判断避免。例如:

(3)java.lang.ClassCastException:JVM在检测到两个类型间的转换不兼容时引发的运行时异常。

例如:

可以通过instanceof操作符来避免类型强制转换异常。例如:

(4)java.lang.Number FormatException:数字格式异常。

例如:

(5)java.lang.ArrayIndex OutOfBoundsException:索引为负或大于等于数组大小,则该索引为非法索引,用非法索引访问数组时抛出数组索引越界异常。

例如:

避免数组索引越界异常的手段是增加边界判断,例如:(www.xing528.com)

项目总结

本项目讲解了Java在程序异常时的处理机制。程序出错包括Exception和Error,需要程序处理的是Exception。Exception又可分为编译异常和运行时异常,其中,编译异常是程序必须处理的,否则不能通过编译。本项目接着讲解了异常处理机制,着重理解try…catch…finally结构和throw、throws关键字的用法。不同异常类的区别主要体现在类名上,如果程序需要,可以自定义异常类。

项目作业

1.选择题。

(1)如下关于异常的测试代码中,控制台显示的结果依次是__________。

A.main-catch B.main方法结束 C.function-try D.function-finally

E.main-try剩余语句

(2)如下关于异常的测试代码中,控制台显示的结果依次是___________。

A.try B.catch C.finally D.main方法结束

2.填空题。

(1)JDK中,Exception 类中__________类及其子类用于表示运行时异常,其他子类都表示___________异常。

(2)异常捕获中,___________代码块用于监测可能发生的异常,___________代码块用于捕获产生的异常,___________代码块不管是否出现异常都要被执行

3.简述什么是检查异常(checked exception),什么是运行时异常。

4.简述关键字try、catch、finally、throw、throws的作用。

5.自定义一个编译异常MyException,并编写My Exception Test测试类验证。

6.上机实践书中出现的案例,可自由发挥修改。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈