在程序运行的过程中发生的一些不正常事件就称为异常(如:数组下标越界、除0错、文件找不到等等)。
对于以上错误,过程式程序设计语言(如C)使用if语句进行条件判断。但这增加了程序的复杂度,而且程序设计人员也很难预先估计所有可能出现的错误情况,并对其进行处理。
一:Java中引入了异常类,Java程序在运行中,当发生一个可以识别的异常时,就产生该异常类对应的一个异常对象,系统中就会有相应的机制来处理该异常,确保它不会对系统本身产生影响。这种异常处理机制很好地提高了异常处理的效率。
二:错误也可分成两种: 1)编译错误 2)运行错误
而运行错误又可分成以下两种: 1)系统运行错误(Error) 2)逻辑运行错误(Exception)
以上两个异常类都是继承于Throwable类,下图展示了Java异常类的继承关系。
三:异常的捕获与处理:
为了防止和处理异常,Java提供了语句try-catch-finally来捕获和处理异常,该语句的格式如下:
try{ //可能产生异常的代码段 }
catch(ExceptionType1 e){ //异常处理1 }
[catch(ExceptionType2 e){ //异常处理2 }
……
catch(ExceptionnTypeN e) { //异常处理N }]
[finally{ //不管异常是否发生总要执行的代码 }]
四:
1. 使用throw抛出异常
throw语句的格式如下:
throw ExceptionInstance;
2.使用throws抛出异常
使用throws抛出异常的格式如下:
类型 方法名(类型 参数1,…) throws 异常类1,…,异常类n { //方法代码 }
注意:一旦使用了throws语句声明抛出异常,就不用再使用try...catch来捕获异常了。