首页 > 技术文章 > 异常

hcjk12580 2019-12-06 21:38 原文

异常:

try...catch

异常分为编译(受检)异常 和 运行时异常

try...catch的运行顺序

当try块中没有异常时,try块运行完之后,跳过catch块,直接执行后面的代码

当try块中有异常时,运行到异常语句,直接跳到catch中,运行完catch中语句之后,直接执行后面的代码,try块中异常后面的语句不会执行.

如果try块中有多个不同类型的异常需要捕获时

1.直接捕获异常父类Exception

2.多个异常依次捕获,多个catch块

多次异常依次捕获,需要注意顺序问题,父类异常放在最后

多次异常依次捕获,只会进入其中的一个catch块

3.try catch都是单独的语句块,需要注意局部变量问题.

 

try...catch...finally

finally最后必定执行的语句块.

注意:如果在一个方法内,try有个return语句,执行到return时,会用一个空间保存return放回值,然后运行finally块;如果finally块中有return语句,就改变空间保存的放回值,否则不会改变,致使有改变放回值的语句.

 

public class Test {

public FileInputStream file;

public void exception(String file) throws FileNotFoundException,IOException{
this.file= new FileInputStream(file);
this.file.reset();
}
}

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class TestException {

public static void main(String[] args) {
Test t = new Test();
try {

t.exception("D:\\Java\\Test1.java");

} catch (FileNotFoundException e) {
//捕获异常
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}

在方法后面异常可以调用者必须加上try...catch,也可以在方法里增加try...catch

public class Test {

public FileInputStream file;

public void exception(String file) throws FileNotFoundException,IOException{

try {
this.file= new FileInputStream(file);
this.file.reset();
} catch (FileNotFoundException e) {
throw e;
} catch (IOException e) {
throw e;
}

}
}

 

 

推荐阅读