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

UCloud年度大促活动可选香港云服务器低至年134元

由于行业需求和自媒体的倾向问题,对于我们个人站长建站的方向还是有一些需要改变的。传统的个人网站建站内容方向可能会因为自媒体的分流导致个人网站很多行业不再成为流量的主导。于是我们很多个人网站都在想办法进行重新更换行业,包括前几天也有和网友在考虑是不是换个其他行业做做。这不有重新注册域名重新更换。鉴于快速上手的考虑还是采用香港服务器,这不腾讯云和阿里云早已不是新账户,考虑到新注册UCLOUD账户还算比...

Hosteons:洛杉矶/纽约/达拉斯免费升级10Gbps端口,KVM年付21美元起

今年1月的时候Hosteons开始提供1Gbps端口KVM架构VPS,目前商家在LET发布消息,到本月30日之前,用户下单洛杉矶/纽约/达拉斯三个地区机房KVM主机可以从1Gbps免费升级到10Gbps端口,最低年付仅21美元起。Hosteons是一家成立于2018年的国外VPS主机商,主要提供VPS、Hybrid Dedicated Servers及独立服务器租用等,提供IPv4+IPv6,支持...

Megalayer美国独立服务器配置及性能速度综合评测

Megalayer 商家在之前也有记录过,商家开始只有提供香港站群服务器和独立服务器,后来也有增加到美国独立服务器,以及前几天也有介绍到有增加香港VPS主机。对于香港服务器之前有过评测(Megalayer香港服务器配置一览及E3-1230 8GB服务器评测记录),这里申请到一台美国独立服务器,所以也准备简单的评测记录。目前市场上我们看到很多商家提供VPS或者云服务器基本上没有什么特别的,但是独立服...

finally什么意思为你推荐
qq管家加速QQ电脑管家加速做多能加速多少赵一涵赵本山女儿女球球真实名字叫什么东莞房管局房管局开具千宗“首次购房证明”?mp3码率求高人来帮我MP3的码率换算该的拼音汉语拼音:tian,该怎么读?合肥城建网合肥枢纽总图获批是真的吗?以儆效尤的意思弓弩手的意思是什么小新补丁网怎么删除补丁ttplayer官网怎样下载“千千静听”?(步骤详细一些,拜托了!)win8中文win8中文版和专业版有何区别
国外bt 免费活动 cn3 网通服务器托管 免费网页空间 789电视剧 吉林铁通 1元域名 免费ftp 英雄联盟台服官网 新加坡空间 lamp兄弟连 云服务是什么意思 黑科云 杭州电信 广东服务器托管 免费主页空间 789电视剧网 服务器托管价格 亿库 更多