finally什么意思试解释Java与Finally的意义及用法?

finally什么意思  时间:2021-10-27  阅读:()

试解释Java与Finally的意义及用法?

一、 finally:java的一种异常处理机制。

finally是对Java 异常处理模型的最佳补充。

finally 结构使代码总会执行,而不管有无异常发生。

使用 finally 可以维护对象的内部状态,并可以清理非内存资源。

特别是在关闭数据库连接这方面,如果程序员把数据库连接的close()方法放到finally中,就会大大降低程序出错的几率。

二、在java中的finally关键一般与try一起使用,在程序进入try块之后,无论程序是因为异常而中止或其它方式返回终止的,finally块的内容一定会被执行 写个例子来说明下: [java] view plaincopyprint? <pre class="java" name="code">.teedry.base; public class TryAndFinallyTest { public static void main(String[] args) throws Exception{ try{ int a = testFinally(2); System.out.println("异常返回的结果a:"+a); }catch(Exception e){ int b = testFinally(1); System.out.println("正常返回的结果b:"+b); } int b = testFinally(3); System.out.println("break返回的结果:"+b); b = testFinally(4); System.out.println("return返回的结果:"+b); } static int testFinally(int i) throws Exception{ int flag = i; try{//一旦进去try范围无论程序是抛出异常或其它中断情况,finally的内容都会被执行 switch(i){ case 1:++i;break;//程序 正常结束 case 2:throw new Exception("测试下异常情况"); case 3:break; default :return -1; } }finally{ System.out.println("ing when i="+flag); } return i; } } </pre><br> <pre></pre> <p>执行结果如下:</p> <p>ing when i=2<br> ing when i=1<br> 正常返回的结果b:2<br> ing when i=3<br> break返回的结果:3<br> ing when i=4<br> return返回的结果:-1</p> <p> </p> <p>结果说明无论上述什么情况,finally块总会被执行。

</p> 二 try的范围内存在exception的话,就会在exception的位置跳到exception哪里,然后执行完exception之后就马上进入finally。

假如exception范围内存在return这些的也会执行finally 假如try范围内不存在exception的话,就执行完try范围内代码之后进入finally执行,finally代码 其实,一般finally写的代码就是流的关闭语句, 假如还是不明白,试一下运行我下面写的几个代码就知道的了。

假如try不存在exception的话: try{ System.out.println("try"); }catch(Exception e) { System.out.println("Exception"); } finally{ System.out.println("Finally"); } 假如try中存在exception的: try{ String demo = null; demo.split(";"); System.out.println("try"); }catch(Exception e) { System.out.println("Exception"); } finally{ System.out.println("Finally"); } 假如try中存在exception,然后exception中存在跳出语句的: try{ String demo = null; demo.split(";"); System.out.println("try"); }catch(Exception e) { System.out.println("Exception"); return; } finally{ System.out.println("Finally"); } 假如try中不存在exception,但是try中存在跳出语句的: try{ System.out.println("try"); return; }catch(Exception e) { System.out.println("Exception"); } finally{ System.out.println("Finally"); }

A400互联1H/1G/10M/300G流量37.8元/季

A400互联是一家成立于2020年的商家,本次给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐。目前,商家推出香港cn2节点+cmi线路云主机,1H/1G/10M/300G流量,37.8元/季,云上日子,你我共享。A400互联优惠码:七折优惠码:0711A400互联优惠方案:适合建站,个人开发爱好者配置...

bgpto:BGP促销,日本日本服务器6.5折$93/月低至6.5折、$93/月

bgpto怎么样?bgp.to日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!bgpto主打日本(东京、大阪...

牦牛云(3.5USD/月 )阿里云国际版云服务器 1核1G40G

收到好多消息,让我聊一下阿里云国际版本,作为一个阿里云死忠粉,之前用的服务器都是阿里云国内版的VPS主机,对于现在火热的阿里云国际版,这段时间了解了下,觉得还是有很多部分可以聊的,毕竟,实名制的服务器规则导致国际版无需实名这一特点被无限放大。以前也写过几篇综合性的阿里云国际版vps的分析,其中有一点得到很多人的认同,那句是阿里云不管国内版还是国际版的IO读写速度实在不敢恭维,相对意义上的,如果在这...

finally什么意思为你推荐
网易云音乐官网网易云不用网络可以听歌吗东莞房管局房管局开具千宗“首次购房证明”?申通投诉申通快递总部投诉电话是多少?烟草网上订烟怎么在网上订烟啊宁财神微博宁财神简历周冬雨最新照片周冬雨是谁?周冬雨照片如题 谢谢了多地养老金迎来新调整多地养老金将调整是怎么回事?中国音乐制作人排名作曲家的中国知名作曲家人人影视字幕组圣城家园 和人人影视 哪个字幕组相比较而言好一点? 如果觉得两个都不好 那请推荐一个 谢谢~~立刻有“上”的近义词有哪些?
万网免费域名 hostmaster 163网 tightvnc 嘟牛 免费全能空间 个人免费空间 ftp教程 135邮箱 腾讯实名认证中心 什么是服务器托管 腾讯总部在哪 免费网络 hdsky nnt 在线tracert 瓦工招聘 免费服务器代理 2000元电脑主机配置 双宿主机防火墙 更多