(一)什么是异常和异常处理
异常:程序不正常的行为和状态。比如试图打开一个根本不存在的文件等。
异常处理:程序返回到安全状态。异常处理会改变程序的控制流程,让程序有机会对错误做出处理。
(二)异常的分类
1. 检查性异常 :外界相关的错误。eg: 打开一个不存在的类、加载一个不存在的类等。
2. 运行时异常 :程序有关的异常。eg:5/ 0 空指针、数组越界等。
3.ERROR:系统内部错误或资源耗尽。错误不是异常,而是脱离程序员控制的问题。
(三)异常处理机制
(3.1)try-catah 语句
JAVA 使用 try-catch 语句来处理异常,将有可能出现的异常操作放在 try-catch 的 try 部分,一旦 try 部分抛出异常对象,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那么 try 立即结束执行,转向 catch 部分。所以程序将发生异常后的处理放在 catah 部分。
try-catah 语句大的格式如下:
(3.2)调试代码
运行结果如下:
(四)自定义异常类
(4.1)自定义异常类概述
在编写程序时可以继承 Exception 类或者其子类定义自己的异常类,然后根据程序的需要来规定哪些方法产生这样的异常。一个方法在声明时可以使用 throws 关键字声明要产生的若干个异常,并在该方法中具体给出产生异常的操作,即用相应的异常类创建对象,并使用 throw 关键字抛出该异常对象,导致该方法结束执行。程序必须在 try-catch 块语句中调用可能发生异常的方法,其中 catch 的作用就是捕获 throw 关键字的异常对象。
注:throw 不是 JAVA 的关键字,该关键字的作用就是抛出异常。throw 和 throws 是两个不同的关键字。
(4.2)调试代码
注意一个方法被覆盖,覆盖它的方法必须抛出相同的异常,或者异常的子类。如果父类的方法抛出多个异常,那么重写的子类方法必须抛出哪些异常的子集,也就是不能抛出新异常。