import java.io.FileInputStream;
import java.io.IOException;
public class FinallyTest {
public static void main(String[] args) {
FileInputStream s = null;
try
{
s = new FileInputStream("a.txt");
}
catch(IOException o)
{
System.out.println(o.getMessage());
return ; //再此处如果去掉注释,给System.exit(0)执行,则finally中的语句不会被执行
// System.exit(0); //再此处如果去掉注释,给return执行,则finally中的语句会被执行
}
finally
{
if (s != null)
{
try
{
s.close();
}
catch(IOException oo)
{
oo.printStackTrace();
}
}
System.out.println("执行了finally来回收系统的资源");
}
}
/*
*在异常处理的语法中,try是必须的,后面的catch和finally是可选的,但是必须出现其中之一,也可以同时出现,finally用作与回收系统的资源。
*无论在catch中有无return,finally总是会被执行,除非是在catch中有System.exit(0);语句来退出虚拟机,否则,finally总是会被执行。
*当系统值执行的时候遇到了return和throw两个语句的时候并不会直接停止执行该方法,而是立刻去寻找异常处理中是否有finally,如果有finally
*则转向finally,finally块执完了之后才会去返回执行return和throw两个语句剩下的语句,如果没有则停止执行该方法。
*
* */
Java中的异常finally的使用
最新推荐文章于 2024-07-07 21:34:22 发布