python try catch finally执行顺序_JAVA 异常try catch finally语句块执行顺序。

1.JAVA中遇到checkException的话 我们通常会通过try.catch 。finally来处理。

我们先来说说程序运行的时候不会发生异常的这种情况。

a.他们的执行顺序一般是先执行try里面的语句块(其中在try中没有return),如果程序没有发现异常则跳过catch语句块,进入finally语句块。--这个很常见。

b.加入try中有return语句呢。程序的执行顺序是这样的先进入try语句块,把return的值进行赋值,但是这时候程序还没有终止。假设这时候没有Exception. 那么执行到return这个语句的时候 就会执行finally语句块。(一般情况下finally语句块中不会有return,如果有return语句则执行完finally中的return语句后,程序就终止运行,不会返回try中的return 语句了。) 如下:最后的返回结果总是finally.因为finally中的return把try中的return给覆盖了。因此我们一般在finally中不会有return语句。

public class TestException {

public static void main(String[] args) {

testException();

}

public static String testException(){

try {

FileReader frFileReader = new FileReader("d:/axbb.txt");

return "try";

} catch (FileNotFoundException e) {

e.printStackTrace();

}finally {

return "finally";

}

}

}

如果程序发生异常呢,那么执行顺序就是先执行try语句块,直到程序发生异常的那一行,然后执行catch语句块,不管catch中有没有return,程序会接着执行finally语句块。

总的来说,try和finally是一定会执行的。 我们一般在try中放入可能会出现异常的语句,在catch中加入出现异常时的处理方式,在finally中是一定会执行到的,我们通常会在finally中进行流和资源的关闭操作。加入没有对流和资源进行关闭的话,如果是我们单个人使用还好,如果是做成web项目之类的,提供给多个人调用,那么每次没有关闭一个流和一个资源,在虚拟器中就会多了一个没有使用的对象。调的人多的会造成程序越来越卡的现象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值