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

盘点618年中大促中这款云服务器/VPS主机相对值得选择

昨天有在"盘点2021年主流云服务器商家618年中大促活动"文章中整理到当前年中大促618活动期间的一些国内国外的云服务商的促销活动,相对来说每年年中和年末的活动力度还是蛮大的,唯独就是活动太过于密集,而且商家比较多,导致我们很多新人不懂如何选择,当然对于我们这些老油条还是会选择的,估计没有比我们更聪明的进行薅爆款新人活动。有网友提到,是否可以整理一篇当前的这些活动商家中的促销产品。哪些商家哪款产...

RepriseHosting:$27.97/月-L5640,16G内存,1TB硬盘,10TB月流量,西雅图机房

RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...

ShineServers(5美元/月)荷兰VPS、阿联酋VPS首月五折/1核1G/50GB硬盘/3TB流量/1Gbps带宽

优惠码50SSDOFF 首月5折50WHTSSD 年付5折15OFF 85折优惠,可循环使用荷兰VPSCPU内存SSD带宽IPv4价格购买1核1G50G1Gbps/3TB1个$ 9.10/月链接2核2G80G1Gbps/5TB1个$ 12.70/月链接2核3G100G1Gbps/7TB1个$ 16.30/月链接3核4G150G1Gbps/10TB1个$ 18.10/月链接阿联酋VPSCPU内存SS...

finally什么意思为你推荐
飘云阁有没有和大牛论坛一样性质的论坛呢?狼雨seo教程怎样去操作白帽SEO方式合肥城建网合肥都市网是一个怎么样的网站,主要是关于网站哪方面的!能够提供我们什么方面的渠道!周冬雨最新照片求周冬雨这张写真的原图肥乡二手房想买二手房有出售二手房的吗杭州展示设计杭州哪所学校有展示设计类自考有文字记载的王朝中国有文字记载的历史追溯到哪个朝代多地养老金迎来新调整企业退休养老金调整最新消息涨多少友盟厦门友盟电子厂怎样蕾丝猫请问玻璃蕾丝猫(孔雀鱼的一种)
最新代理服务器 cc域名 中国万网域名注册 highfrequency 分销主机 服务器怎么绑定域名 青果网 商务主机 150邮箱 电子邮件服务器 工作站服务器 免费智能解析 metalink 能外链的相册 多线空间 最漂亮的qq空间 电信网络测速器 群英网络 阿里云邮箱申请 godaddy中文 更多