一、java学习
一、异常及其分类
1、什么是异常
(1、)异常也叫Exception,是一种程序运行过程中发生的错误,它会中断指令的正常执行。
2、异常的分类
(1、)异常类Exception与错误类Error都继承自可抛出类Throwable
(2、)Error是致命性的,如程序运行时磁盘空间不足、虚拟机错误、内存溢出等,这种严重的错误仅靠修改程序本身是不能恢复执行的
(3、)而异常Exception是非致命性的,如数组下标越界、除法表达式的分母为0等。这种不正常状态可通过异常处理,而使程序继续运行。
[1、] 一种是RuntimeException类及其派生类,称为运行时异常,也叫非检查型异常
{1、}表示程序在设计中出现了问题
[2、] 另外一部分是除RuntimeException类及其派生类之外的所有其他类,称为检查型异常。
{1、}在Java程序编译时要对这类异常是否进行了处理进行检查。当编译器检查到程序中没有对这类异常进行处理时,会产生编译错误。
二、异常的处理(捕获异常和声明抛出异常。)
1、捕获异常
(1、)通过图中所示方法
![](https://i-blog.csdnimg.cn/blog_migrate/b454d017a5ae56657549209650d45ccd.png)
[1、] 如果多个catch块中要捕获的异常类有子类和超类的关系,则catch块中异常类的顺序应该将子类放在前面,将父类和祖先类放在后面。
(2、)在程序中,有时候希望有些语句无论程序是否产生异常都要执行,这时就可以在try…catch语句后,加一个finally代码块。
2、抛出异常
(1、)可以使用throws子句将异常抛出,交给该方法的调用者进行处理,当然调用者也可以继续将该异常抛出。
(2、)子类中重写的方法不能抛出比父类方法中更多的异常
3、自定义异常
(1、)自定义异常类必须继承Exception或其子类
(2、)创建与抛出自定义异常
![](https://i-blog.csdnimg.cn/blog_migrate/b8852bc59b4557d52da8e00db2145dc8.png)