如果try{}里面有一个return语句,那么紧跟着这个try后的finally{}里面的代码会不会执行?
时间:2022-07-28
本文章向大家介绍如果try{}里面有一个return语句,那么紧跟着这个try后的finally{}里面的代码会不会执行?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.分析
如果try{}里面有一个return语句,那么紧跟着这个try后的finally{}里面的代码会不会执行?
一定会执行 分析:三个语句中都可以写return,但是一般finally中不写return,因为会造成返回结果有问题。
2.finally中写返回值
2.1 当finally中写return时,返回的结果有问题(r的结果为finally返回的-1而不是30,此时try里面的返回值被-1覆盖了)
2.1代码
public class Demo1 {
public static void main(String[] args) {
int r = add(10,20);
System.out.println(r);
}
public static int add(int num1,int num2){
try{
int result = num1 + num2;
// String name = null;
// name.equals("XXX");
return result;
}catch (Exception e){
System.out.println("出现异常:"+ e.getMessage());
return 0;
}finally {
System.out.println("资源释放");
// return -1;
}
}
}
2.2运行结果
资源释放
30
3.finally中不写返回值
3.1代码
public class Demo1 {
public static void main(String[] args) {
int r = add(10,20);
System.out.println(r);
}
public static int add(int num1,int num2){
try{
int result = num1 + num2;
String name = null;
name.equals("XXX");
return result;
}catch (Exception e){
System.out.println("出现异常:"+ e.getMessage());
return 0;
}finally {
System.out.println("资源释放");
return -1;
}
}
}
3.2运行结果
出现异常:null
资源释放
-1
- 原来Oracle也不喜欢“蜀黍"(r6笔记第54天)
- Java基础19(01)总结IO流,异常try…catch,throws,File类
- 使用shell生成orabbix自动化配置脚本(r6笔记第53天)
- 现在 tensorflow 和 mxnet 很火,是否还有必要学习 scikit-learn 等框架?
- 数据的标准化与中心化以及R语言中的scale详解
- Java基础19(02)总结IO流,异常try…catch,throws,File类
- HTML5 — header
- 两条报警信息的分析(第二篇)(r6笔记第71天)
- 两条报警信息的分析(第一篇) (r6笔记第70天)
- R-求y=sin(X) 0-PI 面积代码
- Facebook 发布 wav2letter 工具包,用于端到端自动语音识别
- Java企业面试——Java基础
- 从Java的类型转换看MySQL和Oracle中的隐式转换(二)(r6笔记第68天)
- R包—iGraph
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux上通过SSH挂载远程文件系统方法详解
- Linux上创建、列出、删除Docker容器方法总结
- Centos 7.4服务器时间同步配置方法【基于NTP服务】
- PowerBI 通用万能日历模板,想干嘛就干嘛
- Linux持续集成自动化安装Maven的方法
- 在CentOS上安装搭建PHP+Apache+Mysql的服务器环境
- Centos7.4服务器安装apache及安装过程出现的问题解决方法
- ubuntu系统修改时区和时间的方法
- CentOS7 LNMP+phpmyadmin环境搭建 第一篇虚拟机及centos7安装
- flutter 输入框组件TextField的实现代码
- Mac通过不同终端SSH连接远程服务器的讲解
- Linux关于透明大页的使用与禁用介绍
- linux中使用grep命令详解
- linux下使用cmake编译安装mysql的详细教程
- Linux CentOS 7.0中java安装与配置环境变量的步骤详解