type
status
date
slug
summary
tags
category
icon
password
将了解一些关于try…catch 的相关知识
try、catch、finally用法总结
- 在进行异常的处理之后,在异常的处理格式中还有一个finally语句,那么此语句将作为异常的统一出口,不管是否产生了异常,最终都要执行此段代码。
- 当try、catch中有return时,finally中的代码依然会继续执行
- finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做任何的改变,返回的值都不会改变,依然返回保存起来的值。也就是说方法的返回值是在finally运算之前就确定了的。
- finally代码中最好不要包含return,程序会提前退出,也就是说返回的值不是try或catch中的值
try+catch的处理流程
1、 一旦产生异常,则系统会自动产生一个异常类的实例化对象。
2、 那么,此时如果异常发生在try语句,则会自动找到匹配的catch语句执行,如果没有在try语句中,则会将异
常抛出.
3、 所有的catch根据方法的参数匹配异常类的实例化对象,如果匹配成功,则表示由此catch进行处理。
操作引用数据类型的时候返回值是什么?
操作基本数据类型的时候返回值是什么?
如果在finally添加返回值
面试题
- try-catch-finally 中哪个部分可以省略? 答: catch和finally可以省略其中一个 , catch和finally不能同时省略 注意:格式上允许省略catch块, 但是发生异常时就不会捕获异常了,我们在开发中也不会这样去写代码.
- try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗? 答:finally中的代码会执行 详解: 执行流程: (1) 先计算返回值, 并将返回值存储起来, 等待返回 (2) 执行finally代码块 (3) 将之前存储的返回值, 返回出去; 需注意: (1) 返回值是在finally运算之前就确定了,并且缓存了,不管finally对该值做任何的改变,返回的值都不 会改变 (2) finally代码中不建议包含return,因为程序会在上述的流程中提前退出,也就是说返回的值不是try或 catch中的值 (3) 如果在try或catch中停止了JVM,则finally不会执行.例如停电- -, 或通过如下代码退出 JVM:System.exit(0);
- 作者:Piaoyansong
- 链接:https://piaoyansong.top/article/example-21
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。