try-catch-finally结构是Java提供来处理异常的,结构大致如下:

try{//代码执行区域
}catch(Exception e){//异常处理区域
}finally{//无论如何都会执行的代码区域
}

1、执行顺序

在Java程序中,有两种异常处理方法,一种是直接抛出异常(throws Exception),另一种是捕获异常内部处理(try catch finally),捕获异常的执行顺序可以用一个demo来解释

public static void main (String[] args){try {System.out.println("try");throw new Exception("catch测试");} catch (Exception e) {System.out.println("catch");} finally {System.out.println("finally");}}

输出结果为:

所以可知,这里的执行顺序为:try >> catch >> finally,如果没有进入异常,那么就是try >> finally

2、当try和finally同时有返回值时,应该返回谁?

public static String try_catch_finally() {try {return "try的返回值";} catch (Exception e) {return "catch的返回值";} finally {return "finally的返回值";}}

输出结果为:

很明显,当try和finally都有返回值的时候,最终返回的是finally里的值

3、当try或者catch返回了值之后,finally又对其进行了修改,那么返回值是多少?

 public static String main (){String str = "Hello";try {return str;}finally{str = "World";}}

输出结果为:

比较奇怪,按照上面的观点,应该是返回finally里面的值的。在看了一些资料后发现,str的值在走完try代码块之后,就被内存缓存了,后面的修改无法影响到缓存中的值,但确实是返回成功了。

try-catch-finally的用法相关推荐

  1. try、catch、finally用法总结

    一.异常的处理:抓抛模型过程一:"抛":程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象.并将此对象抛出.一旦抛出对象以后,其后的代码就不再执行.关于 ...

  2. Java里try catch的简单用法

    Java里try catch的简单用法: Java里try catch的简单用法: 1.try+catch 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理.然后执行catch ...

  3. try 、catch、finally用法总结

    1. try .catch.finally用法总结 1.在进行异常的处理之后,在异常的处理格式中还有一个finally语句,那么此语句将作为异常的统一出口,不管是否产生了异常,最终都要执行此段代码.2 ...

  4. java中 try用法,Java里try catch的简单用法

    优质回答 回答者:temps1991 Java里try catch的简单用法: 1.try+catch 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理.然后执行catch块后 ...

  5. JavaScript中try, catch, throw的用法

    文章出自个人博客https://knightyun.github.io/2019/09/02/js-try,转载请申明. 程序在运行中难免遇到 bug,所以就需要好的调试手段找出问题所在,try, c ...

  6. JAVA学习心得——异常处理try、catch、finally用法

    要了解try.catch.finally的用法,首先了解什么是异常. 异常就是代码出现了问题,不同寻常的意思. java语言把程序运行过程中所发生的不正常严重错误成为异常. 异常的结构: 异常也是有子 ...

  7. try、catch、finally用法

    try { //执行的代码,其中可能有异常.一旦发现异常,则立即跳到catch执行.否则不会执行catch里面的内容 } catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 ...

  8. try catch finally的用法

    1.不使用try...catch出现异常后,后面的代码都不会运行了 login() {console.log(b);console.log('hhhhhhhh');}, 2.使用了try...catc ...

  9. try、catch、finally 用法总结

    前言   在开发过程中异常处理是经常用到的,相信大部分使用try.catch.finally的只知道try中出现异常catch中会捕获,finally块中代码何时都会执行.其实其中还有很多细微的知识点 ...

  10. try - catch语句的用法

    try-catch 语句,作为 JavaScript 中处理异常的一种标准方式. try{ // 可能会导致错误的代码 } catch(error){ // 在错误发生时怎么处理 } 在try中如果有 ...

最新文章

  1. 比特币现金众筹应用Lighthouse正式上线
  2. 这个赛车AI不再只图一时爽,学会了考虑长远策略
  3. 【HDU - 3951】Coin Game (博弈,猜规律,对称博弈)
  4. php 判断下载状态,php下获取http状态的实现代码
  5. 学习和使用web标准的十大理由
  6. jenkins配置ant
  7. 使用Oracle VM VirtualBox创建的虚拟机与本地电脑(物理机)搭建局域网
  8. 话里话外:传统到按单制造业的ERP变革
  9. linux内核编译指定驱动,linux内核编译,配置本机驱动
  10. Fliqlo屏保mac
  11. vue项目中配置跨域
  12. handsontable+vue+ 自定义多选
  13. [Markdown编辑器推荐] - 这个MarkText有点东西啊
  14. 淫欲的真相是什么呢?可能很多英雄豪杰都没有想到过
  15. 如何手机访问电脑服务器上的网页?
  16. 不同RAID硬盘利用率参考
  17. k8s集群coredns无法解析外部域名
  18. 计算机白板培训报道,巧用白板,增色课堂——南宁市五象教育集团小学部开展希沃白板五实操培训活动...
  19. C++常用STL容器
  20. Python——format格式化函数

热门文章

  1. 特殊用途光纤连接器和光缆组件
  2. yjk的波库在哪里_盈建科软件
  3. 用 不到 20 行 Python 代码即可制作 精美证件照
  4. vb6、vbA返回错误行号的系统变量Erl
  5. vue使用screenfull插件,Esc退出,F11切换,图标切换问题;
  6. oracle数据库行转化成列,ORACLE行转列(行转一列,行转多列)
  7. java axis2 调用webservice 接口_Axis2 调用Webservice 接口 | 学步园
  8. 【Android】图片资源的加载、简单处理
  9. KMP-CF535D-Tavas and Malekas
  10. 纠结!优酷、腾讯、爱奇艺,我到底该买哪一个会员呢?