异常处理机制
1.异常的作用::增加程序健壮性
2.以什么形式存在?:类和对象的形式
3.异常的继承结构?
Object
Object下有Throwable(可抛出的)
Throwable下有俩个分支:*Error(不可处理,直接退出JVM) *Exception(可处理的)
Exception下有俩个分支:*Exception的直接子类::编译时异常(在编写阶段需要预处理) *RuntimeException::运行时异常。
4.编译时异常和运行时异常,都是发生在运行阶段。编译阶段异常是不会发生的。因为只有程序运行阶段才可以new对象。异常的发生就是new异常对象
5.编译时异常和运行时异常的区别?
*编译时异常概率较高。
有些要在运行前对其进行预处理。
例子:你看到外面下大雨了。你出门前会预料到:如果不打伞,我可能会生病(生病是一种异常)。而且这个异常发生概率极高,所以出门前要拿一把伞。“拿一把伞”就是对“生病异常”发生之前的一种处理方法。
*运行时异常一般发生的概率比较低。
例子:大黄走在大街上,可能会被天上的风筝割到。 被风筝割到也是一种异常。概率低。
6.编译时异常也叫受检异常(CheckedException),受控异常。
运行时异常也叫未受检异常(UnCheckedException),非受控异常。
7.对异常的处理方式??
*第一种:在方法声明的位置上,使用throws关键字,抛给上一级。谁调用我,我就抛给谁。
*第二种:使用try…catch语句进行异常的捕捉。这件事发生了,谁也不知道,因为我给抓住了。
Java中异常发生之后如果一直上抛,最终抛给了main方法,main方法继续向上抛,抛给了调用者JVM,JVM知道这个异常发生,只有一种结果。终止java程序的执行。