#笔记#圣思园 JavaSE 第73讲——异常 Exception,自定义异常

1.Exception是所有异常的根类。java中所有的异常类都会直接或间接的继承自Exception。

Exception的父类是Throwable。Throwable的两个子类分别是:Exception和Error

2.异常分为两大类

(1)Checked exception

(2)Unchecked exception(又叫Runtime Exception):java中所有的运行时异常都会直接或间接的继承自RuntimeException

3.异常处理的完整结构

try,catch,finally关键字

try

{

}

catch( Exception  e )

{

}

finally

{

}

4.

异常捕获的第一种方法

异常捕获的第二种方法

输出。输出内容的顺序就是代码执行的顺序,aa应该在下面

5.

对于非运行时异常,Checked exception:必须对其进行处理,方式有两种:

        第(1)种:使用try——catch——finally进行捕获。

        第(2)种:在调用该会产生异常的方法所在的方法声明throws Exception。

对于运行时异常:可以不对其进行处理,也可以对其进行处理,推荐不对其进行处理

6.NullPointerException——空指针异常

出现该异常的原因在于,某个引用为null,但却调用了它的某个方法

7.自定义异常类  MyException

自定义异常通常是定义了一个继承自Exception类的子类,那么这个类就是一个自定义异常类

通常情况下,会直接继承自Exception类,一般不会继承某个运行时异常类                                                                                                                                                                                                                                                                                                                

使用MyException异常类  ExceptionTest4



8.可以使用多个catch块来捕获异常,这是需要将父类型的catch块放到子类型的catch块后面,这样才保证后续的catch可能被执行,否则子类型的catch将永远无法到达,java编译器会报编译错误。如果多个catch块的异常类型是独立的(无继承关系),那么谁前谁后都可以

9.异常面试题1

以下代码,当try中有return时:首先将finally块中的代码执行完毕,然后方法再返回

执行完try块的第一行代码,后执行finally中代码,然后返回try块中执行return,直接返回,所以后续代码不执行

输出结果:

异常面试题2

如果try块中存在System.exit(0)语句,那么就不会执行finally块中的代码,因为System.exit(0)会终止当前运行的java虚拟机,程旭辉在虚拟机终止前结束执行

System.exit方法:终止正在运行的java虚拟机

先执行System.exit,虚拟机停止,后面所有代码都不执行

输出结果:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值