海南城乡和住房建设厅网站,自己做网站哪家好,凡科建站是什么,网站引量方法一、首先#xff0c;确定这几个前提咱们先知晓#xff1a; 1、try块必须搭配catch块或者finally块使用#xff0c;不可以单独使用 #xff08;正常使用方式分为3种#xff1a;①trycatch;②tryfinally;③trycatchfinally#xff09; 2、正常运行情况下、不管有没有抛出异…一、首先确定这几个前提咱们先知晓 1、try块必须搭配catch块或者finally块使用不可以单独使用 正常使用方式分为3种①trycatch;②tryfinally;③trycatchfinally 2、正常运行情况下、不管有没有抛出异常、只要代码中有finally块那finally块必然会执行且finally块是在try或catch中的return语句执行之后、返回之前执行的此时并没有返回运算后的值而是先把要返回的值保存起来不管finally块中的代码怎么样只要是没有return语句那么返回的值都不会改变仍然是之前try或者catch块中保存的值。 注意在一些非正常情况下比如在执行finally块之前虚拟机被终止运行程序所在线程死亡cpu被关闭这些情况下finally块自然就不会执行了 3、当finally块中有return语句时不论try和catch中有没有return语句程序都一定会从finally块中的return语句返回即返回值也会是finally块中return语句的返回值而不是try或者catch块中的。
二、 当try、catch、finally、return一起使用时代码的执行流程详解 1try{} catch(){}finally{} return; 直接按正常顺序执行。 2try{ return; }catch(){} finally{} return; 先执行try块中return语句但是并不返回值然后再执行finally块中的语句最后再返回try中return的值finally块后的return不会执行因为程序已经在try块的return处返回。 3 try{ } catch(){return;} finally{} return; 先执行try块然后再看是否有异常 有异常的情况下执行catch块的return但不返回再执行finally块最后再返回catach块中的return值。finally后的return不执行。 没有异常的话按顺序执行finally块再return。 4try{ return; }catch(){} finally{return;} 执行try块return语句包括return语句中的表达式运算但不返回 再执行finally块执行finally块有return从这里返回。 此时finally块的return值就是代码执行完后的值 5 try{} catch(){return;}finally{return;} 有异常先执行try再执行catch中的return但不返回再执行finally块中的return从这里返回。 无异常先执行try再执行finally块有return从这里返回。 6try{ return;}catch(){return;} finally{return;} 首先程序执行try块中return语句包括return语句中的表达式运算但不返回然后再看是否有异常 有异常执行catch块中return语句包括return语句中的表达式运算但不返回 再执行finally块有return从这里返回。 无异常再执行finally块有return从这里返回。
三、总结 1任何执行try 或者catch中的return语句之后在返回之前如果finally存在的话都会先执行finally语句。 2如果finally中有return语句那么程序就return了所以finally中的return是一定会被return的 编译器把finally中的return实现为一个warning。