一、什么是异常
1.注意异常(Exception)和错误(error)
2.异常指的是程序运行过程中出现的不期而至的各种状况,如文件找不到,网络连接失败,非法参数等等。
3.异常可以分为下面三类:
- 检查性异常:
- 运行时异常:如你调用我,我调用你,循环了,只有运行才能被发现
- 错误ERROR:错误不是异常,而是脱离了程序员控制的问题,错误在代码中常常被忽略,例如,当栈溢出的时候,一个错误就发生了,它们在编译的时候也检查不到。
4.异常处理框架 - java把异常当做对象来进行处理,并定义了一个基类:java.lang.Throwable作为异常的超类。
- 下图所示的是异常体系结构
5.ERROR- Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。
- Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时、Java虚拟机(JVM)一般会选择线程终
止; - 还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)、链接错误(LinkageError)。这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。
6.Exception
二、如何捕获和抛出异常
1.异常处理的五个关键字:try,catch,finally,throw,throws,注意throw是在方法体中主动抛出异常,throws是在方法上,即定义方法的时候就抛出异常,然后使用try/catch来捕获,然后程序可以继续执行。
2.快捷键:ctrl+alt+t 可以生成快捷的代码块
3.捕获异常的例子:
4.主动抛出异常的例子:
5.方法上抛出异常然后捕获的例子
三、自定义异常
1.自定义异常类必须继承Exception类
2.可能存在异常的方法,要么直接捕获,要么就直接在方法上进行异常的抛出