try、catch、finally的执行顺序
有这样一段代码 :
public class EmbededFinally {
public static void main(String args[]){
int result;
try {
System.out.println("in Level 1");
try {
System.out.println("in Level 2");
// result=100/0; //Level 2
try {
System.out.println("in Level 3");
result=100/0; //Level 3
}
catch (Exception e) {
System.out.println("Level 3:" + e.getClass().toString());
}
finally {
System.out.println("In Level 3 finally");
}
// result=100/0; //Level 2
}
catch (Exception e) {
System.out.println("Level 2:" + e.getClass().toString());
}
finally {
System.out.println("In Level 2 finally");
}
// result = 100 / 0; //level 1
}
catch (Exception e) {
System.out.println("Level 1:" + e.getClass().toString());
}
finally {
System.out.println("In Level 1 finally");
}
}
当我去掉level2中level3前面的注释时,level3的catch不再执行;
当我去掉level2中level3后面的注释时,level3的catch执行;
所以得到,当try中发现异常并抛出异常之后则不向下执行,直接转到catch接收异常,最后执行同层次finally。
}
转载于:https://www.cnblogs.com/hehejeson/articles/4963852.html
try、catch、finally的执行顺序相关推荐
- try catch finally的执行顺序到底是怎样的?
首先执行try,如果有异常执行catch,无论如何都会执行finally 一个函数中肯定会执行finally中的部分. 关于一个函数的执行过程是,当有return以后,函数就会把这个数据存储在某个位置 ...
- 有return的情况下try catch finally的执行顺序
前言,在写java 异常捕捉块的时候,有时候用到return,有时有各种情况,不仔细分析的化就会出现意想不到的问题,所以我测试一般情形,用于记录一下. 情景1:try{}catch{}finally{ ...
- try,catch,finally的执行顺序问题
大家面试的时候想必会遇到这种面试题,要我们输出结果... 其实在实际的业务中呢一般都是用finally来关闭流的,很少做其它业务操作,所以呢大家也就容易忽视掉这个问题 首先在finally和try中对 ...
- 一道异常处理执行顺序面试题的简单分析
异常处理,我们写的代码里经常会用到:try{}catch{}finally{}.可是大家真的了解它吗? 下面的代码,运行结果是什么?大家猜一下: View Code static class Prog ...
- java子类代码块_java中父类子类静态代码块、构造代码块执行顺序
父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class ...
- java try、catch、finally及finally执行顺序详解
1.为什么要用finally 先看一个没有finally的异常处理try-catch语句: 假设count为要使用到的资源,并且用完要求释放此资源.那么我们可以把释放资源的语句放到try-catch后 ...
- java catch中 return_JAVA中try、catch、finally带return的执行顺序总结
try catch 以后只要没有抛出新异常或者return,代码会继续往下执行的. 异常处理中,try.catch.finally的执行顺序,大家都知道是按顺序执行的.即,如果try中没有异常,则顺 ...
- try catch嵌套执行顺序测试
分享一段测试try catch 执行顺序和那些代码后续执行,那么不执行的代码: @Testpublic void testTryCatch(){try {System.out.println(&quo ...
- 细琢磨,try catch finally 执行顺序与返回值
try catch finally 常见格式如下: try{//应用代码}catch(Exception e){//异常捕捉处理}finally{//资源释放.流关闭等等 } 通常执行顺序: try有 ...
- try catch finally return的执行顺序与返回值探究
下午看了一下百度文库中下载下来的java笔试题,其中一道就是关于这个问题的,所以写了个测试程序验证了一下,另外具体的理论知识搜罗了网上的资料. 测试程序如下: package com.andy.cod ...
最新文章
- 请简述计算机软件系统与硬件系统的关系,电脑硬件与软件的关系是什么?
- java跳转语句包含goto_Java 的跳转语句中 _______( 包含 / 不包含 )goto 语句。_学小易找答案...
- 数据库:分享四个实用的SQLServer脚本函数,欢迎收藏
- 【2021.01.01】人生中很重要的一个十年,差强人意
- python库--pandas--Series.str--字符串处理
- python学习笔记-Day5
- Python+OpenCV:交互式图像前景提取(Interactive Foreground Extraction using GrabCut Algorithm)
- 不联网的情况下,使用 electron-builder 快速打包全平台应用
- PHP二维数组:统计某个键名的相同键值个数
- linux下安装mysql-5.7.20
- 期望dp+高斯消元——bzoj3143
- jsp网页视频播放器
- 5、html标签中的两种关系
- Verilog实现四位加/减法器(逻辑表达式)
- 网络神经科学 Network neuroscience
- E波段通信系统参考文献E-band info(整理)
- 打印机经常没反应的一个解决办法
- 加密解密在区块链中的应用
- jndi weblogic mysql_在WebLogic新建针对Oracle数据库的JNDI数据源
- 清理kdevtmpfsi、dbused挖矿木马程序