try/catch/finally的各种情况

news2024/11/30 12:27:42

众所周知,try语句报错,会执行catch语句,然后执行finally,以下这几种情况,看看会如何输出。

1、try语句中包含return,finally包含输出语句

public static void main(String[] args) {
	// write your code here
        System.out.println(get());
}

public static String get(){
    try {
        return "111";
    } catch (Exception e) {
        throw new NullPointerException();
    } finally {
        System.out.println(123);
    }
 }

结果:finally正常输出

 2、try语句报错,catch语句抛出错误,finally包含输出语句

public static void main(String[] args) {
	// write your code here
        System.out.println(get());
}

public static String get(){
   try {
    	throw new NullPointerException();
	} catch (Exception e) {
 		throw new NullPointerException();
	} finally {
		System.out.println(123);
    }
}

结果:finally执行成功,再抛出catch中的错误

 3、try语句报错,catch包含return,finally包含输出语句

public static void main(String[] args) {
	// write your code here
        System.out.println(get());
}

public static String get(){
    try {
        throw new NullPointerException();
    } catch (Exception e) {
        System.out.println(111);
        return "456";
    } finally {
        System.out.println(123);
    }
}

结果:catch中的语句输出成功,finally中的语句输出成功

 4、try和finally中的语句都包含输出

public static void main(String[] args) {
	// write your code here
    System.out.println(get());
}

public static String get(){
    try {
        return "123";
    } catch (Exception e) {
        System.out.println(111);
        return "456";
    } finally {
        return "789";
    }
}

结果:finally成功return

 5、try报错,catch和finally包含return语句

public static void main(String[] args) {
	// write your code here
    System.out.println(get());
}

public static String get(){
    try {
        throw new NullPointerException();
    } catch (Exception e) {
        System.out.println(111);
        return "456";
    } finally {
        return "789";
    }
}

结果:finally成功return

 6、try包含return,finally抛出错误

    public static void main(String[] args) {
	// write your code here
        System.out.println(get());
    }

    public static String get(){
        try {
            return "789";

        } catch (Exception e) {
            System.out.println(111);
            return "456";
        } finally {
            throw new NullPointerException();
        }
    }

结果:直接报错

 7、try包含报错,catch包含return,finally抛出错误

public static void main(String[] args) {
	// write your code here
    System.out.println(get());
}

public static String get(){
    try {
        throw new RuntimeException();
    } catch (Exception e) {
        return "456";
    } finally {
        throw new NullPointerException();
    }
}

结果:直接报错

通过上面的例子,我们可以得到以下结论:

  1. finally语句存在的话,一定会执行
  2. 若try语句报错,会执行catch语句,如果catch语句也报错,则会先执行finally语句,再抛出catch的错误
  3. try语句或者catch语句return了,finally仍然会执行
  4. 若finally语句中包含return,则会覆盖try或者catch中的return
  5. 若finally语句报错,这个错误一定会抛出,终止程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOX代码、预测(使用摄像头实时预测)及其添加SE注意力前后的实验结果

1. 代码获取 https://github.com/Le0v1n/ml_code/tree/main/ObjectDetection/YOLOX 如果代码对你有用,请star一下❤️ 2. 预测 2.1 图片预测 下载权值文件:https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.pth将权…

iOS键盘通知弹框使用小结

项目开发中文本框输入的时候经常会用到键盘弹框遮挡的问题。解决办法就是根据底部键盘弹出的高度动态的改变对应view的位置。这里以多行文本框输入为例,效果图如下。 //第一步,注册监听键盘通知 [[NSNotificationCenter defaultCenter] addObserver:self…

只会 Python 不行,不会 Python 万万不行

当下的环境大家有目共睹,未来一段时间情况如何,想必不少人心里也清楚,技术人走到中年,难免会焦虑,职场上干得不爽,但是跳槽也不容易,加上不少企业裁员,换个满意的工作更是难上加难。…

JavaScript——周技能检测——菜单编辑——2022年11月22日(考完)

JavaScript——周技能检测——菜单编辑——2022年11月22日(考完) 一、语言和环境 1. 实现语言:JavaScript。 2. 开发环境:VScode。 二、要求 1、在文本框中输入两个操作数和选择运算符后,在页面上显示输出结果。 …

电影《名侦探柯南:万圣节的新娘》观后感

上周看了电影《名侦探柯南:万圣节的新娘》,讲述了一场即将发生在东京涉谷的爆炸案件,引来各方的关注,柯南在参与案件的过程中,找出真凶的故事。 故事属于侦探类,有悬疑反转等要素,还是挺好的。不…

推荐系统实战3——推荐系统中Embedding层工作原理浅析

推荐系统实战3——推荐系统中Embedding层工作原理浅析学习前言什么是Embedding一、为什么要有Embedding二、推荐系统中常见的Embedding处理方式1、字符串形式的输入2、连续值(特定范围值)的输入三、Embedding的注意点学习前言 Embedding层是推荐系统特征…

盘点一下今年世界杯中国赞助商及联名入圈品牌

作为全世界的超级体育赛事,今年世界杯的ip流量无疑是值得期待的。虽然中国球队缺席,但中国赞助的热情是丝毫不减,中国官方合作伙伴(赞助商)分别是蒙牛、海信、vivo和万达。除了万达,其余三大品牌都是来自各…

护眼灯真的可以护眼吗?2022护眼台灯该怎样选择

或许很多人看过一些报道,认为护眼灯是智商税,并不能护眼,但是,我们并不能因为一两款劣质灯具的不行就否定整个行业的产品,真正高质量的护眼灯,并没有像相关报道说的那样不堪,相反其光线对人眼具…

微信小程序商城迅速流行的决定因素

随着互联网的不断发展壮大,许多人更倾向于线上购物,享受到足不出户就能送货上门的购物体验,这使得线上商城占据了优势。而微信小程序商城更是广受好评。 小程序商城的经营模式在很大程度上契合了当下的消费需求和消费心理。它的情感链接&…

JavaScript开发工具WebStorm入门教程:如何安装WebStorm

WebStorm是jetbrains旗下一款JavaScript 开发工具,被广大JS开发者誉为"Web前端开发神器""最强大的HTML5编辑器""最智能的JavaSscript IDE"。 本文给大家讲解WebStorm的安装教程,欢迎下载最新版产品体验! Web…

算法多重要你还不知道吗?字节大佬把LeetCode前400题的解答笔记都整理好了,头发大佬掉,我们跟着吃经验!

你知道现在LeetCode算法在大厂中的重要性吗? 前几天小编看了一个国内算法大神的短视频,他就在视频中指出了算法对当下无论是生活还是找工作中都是非常重要的! 没错这个人就是江湖人称“左神”的左程云老师 小编也简单看了一下一些比较知名互…

定语从句------六级

1.复合句/从句三大类 从句在整个句子中做什么成分,就叫什么从句。 形容词性从句:定语从句,带有谓语的完整的结构在另一个句子中做定语 名词性从句 副词性从句:状语从句 从句典型的标志,带有关系词2.定语从句&#xff1…

selenium⾃动化测试⾯试题及答案,看看你会多少?

说到UI自动化,可能大家和我一样,主要是用Selenium。毕竟Selenium可是UI自动化方面的王者。 而且Selenium 支持多平台,可以模拟真实浏览器,也支持多种浏览器,免费开源,对商业用户也没有任何限制&#xff0c…

分布式任务调度项目xxl-job

xxl-job简介 分布式任务调度项目xxl-job的官网:分布式任务调度平台XXL-JOB 大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c…

【2012】408联考数据结构真题整理

2012年 1 题目 解析 递归 2 题目 答案:A 解析 3 题目 解析 4 题目 答案:B 解析 T1:1T2:2T3:2 1 1 4T4:T3 T2 1 2 4 1 7T5:T4 T3 1 7 4 1 12T6:T5 T4 1 …

Mac M1 Datasophon 安装

Mac M1 Datasophon 安装 什么是 Datasophon DataSophon 是致力于自动化监控、运维、管理大数据基础组件和节点的,帮助您快速构建起稳定,高效的大数据集群服务。 网络要求 要求各机器各组件正常运行提供如下的网络端口配置: 组件默认端口…

PROFINET转EtherCAT网关方案设计

1 摘要 PLC控制器和远程IO通过通讯的方式在目前的生产现场中越来越频繁;有些现场是控制器和远程IO站是统一的通讯协议,而有些现场会出现远程IO站不用协议的情况,主要是来自不同厂家的产品受限。 1.1 解决方案 河南某现场控制器采用西门子1500…

Python之第十一章 面向对象 --- 三大特征

目录 Python之第十一章 面向对象 --- 三大特征 面向对象三大特征 --- 封装 1.在Python代码中,封装有两层含义: 2.封装中的私有属性和私有方法 3.私有属性的访问限制 4.私有属性设置与访问接口 5.私有方法 6.封装的意义 7.property装饰器封装 面…

SCADA系统架构、类型和应用

智能仪表和远程终端单元(RTU)/可编程逻辑控制器(PLC)的进步使得许多行业的过程控制都可以利用SCADA系统的优势轻松管理和操作。SCADA在多种应用中很受欢迎,如加工工业、石油和天然气、发电、配电和公用事业,水和废物控制、农业/灌溉、制造、运输系统等。…

RNN在图像压缩领域的应用-Variable rate image compression with recurrent neural networks

Variable Rate Image Compression with Recurrent Neural Networks RNN在图像压缩领域应用最经典的一篇,由Google的George Toderici提出。原文连接:Variable Rate Image Compression with Recurrent Neural Networks 文章提出了一种基于卷积和反卷积LSTM的RNN网络…