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"); }

hostyun评测香港原生IPVPS

hostyun新上了香港cloudie机房的香港原生IP的VPS,写的是默认接入200Mbps带宽(共享),基于KVM虚拟,纯SSD RAID10,三网直连,混合超售的CN2网络,商家对VPS的I/O有大致100MB/S的限制。由于是原生香港IP,所以这个VPS还是有一定的看头的,这里给大家弄个测评,数据仅供参考!9折优惠码:hostyun,循环优惠内存CPUSSD流量带宽价格购买1G1核10G3...

RackNerd美国大硬盘服务器促销:120G SSD+192TB HDD,1Gbps大带宽,月付$599,促销美国月付$服务器促销带宽

racknerd怎么样?racknerd最近发布了一些便宜美国服务器促销,包括大硬盘服务器,提供120G SSD+192TB HDD,有AMD和Intel两个选择,默认32G内存,1Gbps带宽,每个月100TB流量,5个IP地址,月付$599。价格非常便宜,需要存储服务器的朋友可以关注一下。RackNerd主要经营美国圣何塞、洛杉矶、达拉斯、芝加哥、亚特兰大、新泽西机房基于KVM虚拟化的VPS、...

CloudCone 新增洛杉矶优化线路 年付17.99美元且简单线路测试

CloudCone 商家在以前的篇幅中也有多次介绍到,这个商家也蛮有意思的。以前一直只有洛杉矶MC机房,而且在功能上和Linode、DO、Vultr一样可以随时删除采用按时计费模式。但是,他们没有学到人家的精华部分,要这样的小时计费,一定要机房多才有优势,否则压根没有多大用途。这不最近CloudCone商家有点小变化,有新人洛杉矶优化线路,具体是什么优化的等会我测试看看线路。内存CPU硬盘流量价格...

finally什么意思为你推荐
猫扑网络语言“猫扑”是什么意思?鹮如何区分鹭类,鹤类,鹮类,鹳童话镇歌词陈一发儿说的那个童话镇是什么歌童话镇歌词童话镇原唱是谁宫本武藏重做王者荣耀宫本武藏重做后怎么玩 宫本重做技能连招使用三d动画培训3d动漫设计培训哪家最强?出来都是从事什么工作的?北斗小辣椒怎么样北斗小辣椒质量怎么样?跟三星 金立 华为 步步高等相比怎么样(比质量)?ttplayer官网千千静听在哪下载2014美国春晚2014春晚魔术是谁表演的杭州展示设计谁知道杭州最好的设计公司是哪一家?
sharktech winscp awardspace 韩国空间 gateone 网页背景图片 windows2003iso html空间 100x100头像 193邮箱 赞助 idc是什么 优酷黄金会员账号共享 360云服务 百度云加速 路由跟踪 网站加速 卡巴斯基官网下载 好看的空间 wordpress空间 更多