什么是异常处理
在 Java中,运行时错误会作为异常抛出。异常就是一种对象,表示阻止正常进行程序 执行的错误或者情况。
我们处理这个异常使程序可以正常运行或者优雅停止的行为,就是异常处理。
异常类型
Throwable
Error 出现的jvm不能处理的方法。
Exception 可以处理的方法。
运行时期异常 RuntimeException的子类就是这类,编译时期可处理也可不处理。
编译时期异常 编译时期必须处理 Exception子类 且非RuntimeException子类。
异常处理方法
异常处理步骤
捕获处理
try...catch语句
try{
有可能出现问题的代码;
}catch( eg ArithmeticException){
处理异常;
}
throws IOException
抛出去异常;
如果发现异常,异常下面代码不执行(类似于循环break)。直接跳入catch语句中,catch语句结束后,整个try...catch结束
如果没有发现异常,try语句块结束后,直接结束 不执行catch代码。
声明异常的关楗字是 throws, 抛出异常的关键字是 throw。
throw : 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置: 方法体内)
throws : 如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。用它修饰的方法向调用者表明该方法可能会抛出异常(可以是一种类型,也可以是多种类型,用逗号隔开)(位置: 写在方法名 或方法名列表之后 ,在方法体之前。)
finally :finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。
自定义异常
Java自定义异常的使用要经历如下四个步骤:
1、定义一个类继承Throwable或其子类。
2、添加构造方法(当然也可以不用添加,使用默认构造方法)。
3、在某个方法类抛出该异常。
4、捕捉该异常。
异常链
规则是从小到大,当上面的捕获不了的异常下面再来捕获,同一个异常只能有一个catch块捕获到。
|
|