




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java中异常处理中return的用法关于try、catch、finally语句块中含有return语句的几点说明:1、第一种情况:try块有return语句,catch块没有return,函数末尾也没有return:看代码:import java.util.*;public class Demopublic static void main(String args)int num = 10;test(num);public static int test(int b)tryb += 10;return b; catch(Exception e)finally编译结果:H:java Demojavac Demo.javaDemo.java:18: 缺少返回语句 1 错误有人可能会说,我在try块中不是有return语句吗?为什么会提示缺少return语句呢?这是因为编译器认为try块中是又可能产生异常操作的,也就是说在return语句之前如果出现异常的话,那么return语句根本没有机会得到执行,所以编译器会认为缺少return语句。解决办法:a、在catch块中加入return语句,因为一旦出现异常,catch中的语句可以保证函数会有一个返回值b、在finally块中加入return语句,同样只要系统不退出,finally语句块会始终得到执行的代码:import java.util.*;public class Demopublic static void main(String args)int num = 10;System.out.println(test(num);public static int test(int b)tryb += 10;return b; catch(Exception e)finallyreturn 0;c、在函数末尾加入return语句代码:import java.util.*;public class Demopublic static void main(String args)int num = 10;System.out.println(test(num);public static int test(int b)tryb += 10;return b; catch(Exception e)finallyreturn 0;2、第二种情况,看代码:import java.util.*;public class Demopublic static void main(String args)int num = 10;System.out.println(test(num);public static int test(int b)tryb += 10;return 0;结果:H:java Demojavac Demo.javaDemo.java:8: try 不带有 catch 或 finally try 1 错误说明:也就是说,如果有try语句的话,可以有catch语句,没有finally语句,但是如果没有catch语句的话,那么一定要有finally语句。并且如果出现catch语句的话,catch语句可以出现多次,而finally语句只能出现一次。代码:public class Demopublic static void main(String args)int num = 10;System.out.println(test(num);public static int test(int b)tryb += 10;catch(RuntimeException e)catch(Exception e2)finallyreturn 0;3、第三种情况:a、try块中有return语句,那么是先执行return语句,还是先执行finally语句。大家通常会有一个错误的认识,可能有的老师都会讲错,认为是先执行finally语句,再执行return语句,但是这是错误的,事实上是先执行return语句,再执行finally语句,然后将结果返回,也可以说return语句执行了两次,一次在finally之前,一次在finally之后,但是返回的确是第一次执行的值,如果有不信的,请继续看代码,此段代码可以证明我的观点:代码:public class Demopublic static void main(String args)int num = 10;System.out.println(test(num);public static int test(int b)tryb += 10;return b;catch(RuntimeException e)catch(Exception e2)finallyb += 10;return 0;结果:H:java Demojavac Demo.javaH:java Demojava Demo20说明:此处需要引入缓冲的概念,有对缓冲不太了解的也没关系,程序运行结果是20足以证明我的观点,程序执行流程是进入try语句块执行return语句,但是程序有finally语句块,所有先将return返回的值缓冲起来,然后程序跳转到finally语句块执行,我在finally语句块中修改了变量b的值,但是程序返回的依然是20,并不是30,说明finally语句块执行完毕后,程序直接将之前缓冲的值返回了。所以这就是真实的执行流程。b、try块中有return,finally语句块中也有return,此时的情况是什么样呢?看代码:public class Demopublic static void main(String args)int num = 10;System.out.println(test(num);public static int test(int b)tryb += 10;return b;catch(RuntimeException e)catch(Exception e2)finallyb += 10;return b;结果是:H:java Demojava Demo30说明:为什么此时结果是30了呢,大家都知道return语句的作用是结束程序体,所以此段代码依然是先执行try块中的return语句,并将20缓存起来,接着跳转到finally语句块执行,但是由于finally语句块中有return语句,所以程序在此处结束,并不返回到try块中返回结果,而是直接将finally块中新修改的值即30,返回。c、try块中有return语句,catch块中也有return语句,这时候是最简单的一种情况:看代码:public class Demopublic static void main(String args)int num = 10;System.out.println(test(num);public static int test(int b)tryint a = b/0;return b;catch(Exception e2)b += 10;return b;结果:H:java Demojav
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州黄平县中医医院医共体单位纸房乡卫生院招聘2名护理人员模拟试卷参考答案详解
- 2025湖南株洲市工业中等专业学校招聘第一批高层次人才13人模拟试卷及答案详解参考
- 2025湖北神农架优抚医院招聘医疗卫生专业技术人员模拟试卷附答案详解(模拟题)
- 2025江苏徐州选聘徐州泉山经济开发区投资发展有限公司总经理(四)考前自测高频考点模拟试题附答案详解
- 2025安徽蚌埠市教育局局属中学高层次人才招聘50人模拟试卷附答案详解(突破训练)
- 2025年上半年浙江宏为电力建设有限公司社招(若干人)笔试题库历年考点版附带答案详解
- 2025河南驻马店市正阳县县管国有企业招聘20人(第二批)考前自测高频考点模拟试题及答案详解(必刷)
- 2025广东海洋大学招聘辅导员32人模拟试卷完整答案详解
- 2025内蒙古赤峰新正电工技术服务有限公司面向社会招聘69人模拟试卷附答案详解(黄金题型)
- 2025广东依顿电子科技股份有限公司招聘工艺工程师岗人员考前自测高频考点模拟试题参考答案详解
- 带状疱疹后神经痛护理查房
- 急性女性盆腔炎个案护理
- 重点实验室开放管理办法
- 【城市道路监理大纲】市政一级主干道路工程监理大纲
- 2025年四川省成都市辅警协警笔试笔试预测试题(含答案)
- 国企运营资产管理办法
- 【Google】2025全球短剧营销白皮书(市场数据、渠道打法、ROI全盘点)
- 农业植保员培训课件
- 机场特种车管理制度
- 面房合伙人合同范本
- 易货员实操考试试题及答案
评论
0/150
提交评论