第9章 Java异常处理

40 篇文章 0 订阅
40 篇文章 0 订阅

9.2.1 异常的分类

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

  1. 编译时异常(受检异常Checked)

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

  1. 运行时异常(非受检异常UnChecked)

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

 

 

图10- 8 异常分类

9.2.2 Throwable

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

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

9.2.3 Error

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

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

9.2.4 Exception

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

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

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

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值