• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

java异常体系结构

异常体系结构

如10.1.2所示的
ArrayIndexOutOfBoundsException数组下标越界异常,NumberFormatException数字格式化异常,ArithmeticException算术异常,查看它们的API,例如图9-5,9-6,9-7。

java培训课程异常体系结构

图9- 5 ArrayIndexOutOfBoundsException数组下标越界异常

java培训课程异常体系结构

图9- 6 NumberFormatException数字格式化异常

java培训课程异常体系结构

图9- 7 ArithmeticException算术异常

1. 异常的分类

Java语言提供了两大类异常,如图9-8:

l 编译时异常(受检异常Checked)

编译时异常:指程序中必须接受检查和处理的异常,由Exception 类表示。

l 运行时异常(非受检异常UnChecked)

运行时异常:程序中可以不接受检查和处理,或致命性错误异常,由RuntimeException类或Error类表示。

java培训课程异常体系结构

图10- 8 异常分类

2.Throwable

Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。

两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。

3. Error

Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。

在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。

4. Exception

Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。

应该在程序中尽可能地预知并处理异常。

l checkedException:受检异常。这一类异常,编译时必须对其进行处理,如果不处理,编译不通过。(checked表示编译器检查过已经处理过的)。例如:疲劳必须休息、喝酒必须不能开车、刹车必须好用。

l RuntimeException(uncheckedException):运行时异常(非受检异常)。一类特殊的异常,如被0除、数组下标越界等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将它们交给缺省的异常处理程序,即交给JVM处理,用户不显式处理。但是应该尽量避免!!!例如:前车急刹车、有人加塞、路口突然窜出的电动车等等。换句话说,出现RuntimeException一定是你的问题,可以不捕获,因为小心点这些异常是可以避免的,例如:数组下标越界异常
ArrayIndexOutOfBoundsException,空指针异常NullPointerException,类型转换异常ClassCastException等等。

想要了解跟多关于java培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量java培训课程视频供广大学员下载学习。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注