关于JAVA中的异常那些事儿

背景

1.为什么会有异常机制
答:开发异常处理程序的原因是,如果为每个发放所有可能发生的错误都进行处理的话,任务会显得过于繁重,程序员也不愿意这样做1.

正文

1.在Java中,异常的种类体系如下所示:

这里写图片描述

说明:其中所有异常都是从Throwable继承而来,但我们程序员关注的只有右分支Exception子类体系,至于左分支Error类,是一般程序运行环境由于资源不足、约束失败等不满足程序执行条件造成的,这也不是我们能够控制的。
2.当出现try/catch/finally语句块与return并用时,无论return出现在try中,还是catch中,只要程序进入到二者中之一,那么如果有finally语句,就一定会执行finally里面的子句。
3.JAVA的catch机制是存在顺序的,从上而下依次进行匹配,一旦发生异常将不在进行匹配,且子类的异常对象也可以匹配基类的异常Catch处理程序,因此尽量将高层次的异常放到后边。
4.如果只是重新抛出异常,那么printStackTrace()方法显示的将是原来异常抛出点的调用栈信息,而非重新抛出点的信息。
5.对于右分支Exception体系:
(1)被检查的异常:Exception类本身,及其子类(除RuntimeException)都属于编译时异常,要么通过throws进行声明抛出,要么通过try/catch语句捕获处理,否则不能编译通过。我们自己定义的异常,如果直接继承了Exception,那么就属于编译时异常,是被编译检查的。
(2)运行时异常:RuntimeException类本身,及其子类(如ClassNotFoundException)都属于运行时异常,不需要我们进行任何处理,会自动被上一级调用捕获。
6.如果一个类中含有throws异常声明,那么它的子类也一定会有这些异常声明,且类型保持一致。

  1. 来源于《java编程思想》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值