finally代码执行的情况

寄存器与计数器设计(Verilog) always @(posedge Reset or posedge Clock)//请在括号中补充敏感信号列表。always @(negedge Resetn , posedge Clock)//请在括号中补充敏感信号列表。always @(negedge Resetn,posedge Clock)//请在括号中补充敏感信号列表。//为了便于自动评测,请勿更改n的值。//为了便于自动评测,请勿更改n的值。//为了便于自动评测,请勿更改n的值。//为了便于自动评测,请勿更改n的值。 阅读详情

number1:

很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员。可惜并不像大多人所认为的那样,对于这个问题,答案当然是否定的,我们先来看下面这个例子。

public class Test {
public static void main(String[] args) { 
System.out.println("return value of test(): " + test()); 
} 
public static int test() { 
int i = 1; 
//  if(i == 1) 
//   return 0; 
System.out.println("the previous statement of try block"); 
i = i / 0; 
try { 
 System.out.println("try block"); 
  return i; 
  }finally { 
  System.out.println("finally block"); 
 } 
}
}




number1执行结果:

the previous statement of try block
Exception in thread "main" java.lang.ArithmeticException: / by zero
 at Foo.Test.test(Test.java:14)
 at Foo.Test.main(Test.java:5)

另外,如果去掉上例中被注释的两条语句前的注释符,执行结果则是:

1
return value of test(): 0

在以上两种情况下,finally 语句块都没有执行,说明什么问题呢?只有与 finally 相对应的 try 语句块得到执行的情况下,finally 语句块才会执行。以上两种情况,都是在 try 语句块之前返回(return)或者抛出异常,所以 try 对应的 finally 语句块没有执行。


number2:

public class Test {
    public static void main(String[] args) {
        foo(false);
    }
    public static void foo(boolean flag) {
        System.out.println("enter foo()");
        if(flag) {
          try {
              System.out.println("enter try block");
          } finally {
              System.out.println("enter finally block");
          }
        } else {
            System.out.println("leave foo()");
        }

    }
}
/******************
控制台打印如下
enter foo()
leave foo()
*******************/

number3:

public class Foo {
public static void main(String[] args) {
try {
return;
} finally {
System.out.println( "Finally" );
}
}
}

执行结果就是Finally



Serdes之什么是(CDR)? 光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。目前市场上大多数收发器都没有专用的时钟输入,因此时钟恢复和数据重新定时等功能是在收发器外部(即在主板上)进行的。接收端则需要恢复时钟以采样串行线上的数据。为了实现这一点,接收端需要一个与输入数据频率大致相同的时钟。通过使参考时钟与输入数据信号的跳变相位对齐,可以生成一个恢复的时钟。这被称为时钟恢复。 阅读详情

相关推荐

(MIUI)小米手机录音文件深度寻踪:从系统缓存到数据目录的实战解析

本文深入解析了MIUI系统中录音文件丢失的常见原因及解决方案,包括系统升级兼容性问题、应用缓存机制异常和存储权限变动。通过实战操作指南,详细介绍了如何从系统目录、数据库层面恢复录音文件,并提供了预防措施和自动化备份方案,帮助小米手机用户有效找回重要录音数据。

weixin_42699679的博客 518

java try-finally,java try-catch-finally递归问题

public class Foo {public static void main(String[] args) {foo();}public static void foo() {try {System.out.println("try");foo();} catch (Throwable e) {System.out.println("catch");foo();} finally {Syst...

weixin_39638188的博客 276

S型速度曲线C程序实现

S型速度曲线C语言程序实现 前言 S型曲线相较于梯形速度曲线具有运行更加平稳的特点,S型曲线共有八种运行情况,感兴趣可以查阅相关文献 代码段 #include <stdio.h> #include <math.h> #define FP64 double int main(void) { /**************************** 定义相关变量(需要映射到PLC寄存器才能进行监控) ***********************/ FP6

LSX312441548的博客 8392

try---catch--finally,finally是否一定执行?

public class TryCatchFinally { public static void main(String[] args) { System.out.println("Hello World!"); System.out.println(fun1()); } public static int fun(){ int i = 10; try{ //n

琼华 2161

springboot + netty 实现多客户端登录 超出设备 并下线

本文档旨在详细描述多平台登录控制的需求和实现方案。当前系统仅支持单设备登录,需扩展为支持多设备同时在线,并提供多种登录策略。文档详细列出四种策略:单平台登录、双平台登录、三平台登录和多平台同时在线,每种策略的具体限制和支持平台。技术实现方案包括数据结构设计、NettyUtils 工具类方法、WebSocketHandler 修改,以及相应的测试方案

Likefr 1878

从图片到3D模型:用Tripo+Unity打造AI建模流水线(避坑指南)

本文详细介绍了如何利用Tripo和Unity构建AI驱动的3D建模流水线,从图片到3D模型的高效转换。通过文生模型和图生模型的双模系统,开发者可以大幅提升建模效率,适用于游戏开发和数字内容创作。文章还提供了环境配置、图片预处理、批量生成等实用技巧,帮助开发者避开常见陷阱。

weixin_27024175的博客 616

1. 改正下列代码中的错误.java_JAVA复习答案

JA V A 程序设计2010/11/16 复习填空1 一个Applet在被加载到浏览器并完成初始化后,将被调用的方法是paint2 Class对象由Java 虚拟机自动生成。3 在Java 中,转义字符\n 表示换行4 抛出异常的语句是throw new Exception()5 设x = 2 ,则表达式x++ * 3 的值是66 对二进制数进行算数右移的运算符是>>。7 Java中...

weixin_39639049的博客 696

Kaggle大神Abhishek的机器学习框架实战:从红酒数据集看交叉检验的坑与解法

本文通过Kaggle竞赛Grandmaster Abhishek Thakur的实战经验,以红酒数据集为例,深入探讨了机器学习中交叉检验的五大陷阱与优化策略。文章详细解析了决策树max_depth调优过程中的过拟合现象,对比了五种主流交叉检验方法的适用场景,并提供了回归问题中的分层技巧和特征工程陷阱的解决方案。最后,总结了交叉检验方案选型决策树,帮助数据科学家在实际项目中提升模型泛化能力。

h6j7k8l9p0的博客 964

java try,finally

public class foo { static String test(){ try{ return "try"; }finally{ return "finally"; } } public static void main(String[] args){ System.out.println(test()); } }

编程学习 504

手把手教你用Python模拟侧信道攻击:从电磁辐射到数据窃取(附防御代码)

本文详细介绍了如何使用Python模拟侧信道攻击,从电磁辐射信号采集到数据窃取的全过程,并提供了实用的防御代码。通过实战案例,帮助安全研究员和开发者理解侧信道攻击原理,掌握信号处理与图像重建技术,同时学习有效的噪声干扰和电磁屏蔽防御措施。

weixin_28716443的博客 162

基于DSIFT多尺度图像融合的MATLAB代码

多尺度图像融合是一种常用的图像处理技术,它可以将具有不同尺度和空间频率特征的图像融合成一幅更具信息丰富度和视觉效果的图像。DSIFT算法是一种基于SIFT算法的改进版本,它在提取图像特征时采用了密集采样的方法,能够有效地提取图像的局部特征。多尺度图像融合基于DSIFT算法的思想,通过在不同尺度下提取图像的DSIFT特征,并将这些特征进行融合,得到最终的融合图像。然后,通过DSIFT算法提取了两幅图像的特征。通过运行上述代码,我们可以在MATLAB中实现基于DSIFT多尺度图像融合的算法,并观察到融合结果。

IELLQUI9的博客 181

Java 经典试题 (二)

**The following questions have appeared on actual exams.  Situational details (ie, names, locations, and quantities) have been changed to avoid copyright infringement. Memorize as many of these questi

幽客独往 1万+

华为OD新系统机试真题 - 操作历史管理器的撤销/重做能力

华为OD机试新系统真题【操作历史管理器的撤销/重做能力】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【操作历史管理器的撤销/重做能力】

qq_45776114的博客 865

finally块一定会执行吗?

但以下特殊情况会导致。

m0_61600773的博客 693

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java抛出异常后面的代码是否能执行及 return 语句执行情况

1. 抛出异常后的代码执行情况 下面使用三段代码进行测试 代码1 public static void test1() throws Exception { throw new Exception("参数越界"); System.out.println("异常后"); //编译错误,「无法访问的语句」 } 代码2 public static void test2() throws Exception { try { throw new E

知北行的博客 8754

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

finally中的代码一定会执行吗?

通常在面试中,只要是疑问句一般答案都是“否定”的,因为如果是“确定”和“正常”的,那面试官就没有必要再问了嘛,而今天这道题的答案也是符合这个套路。

Reische的博客 479

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

try-catch-finally的问题

参考:https://blog.youkuaiyun.com/chengzhezhijian/article/details/17264531 面试一家公司的面试题,注: 那个面试官对这个问题挺看重的(可是我回答对了,不知道原理) 下面是测试 public static int fun2(){ try { System.out.println...

dengping1598的博客 300

异常之Finally块

finally:有一些特定的代码无论异常是否发生,都需要执行。另外,因为异常会引发程序跳转,导致有些语句执行不到。而finally就是解决这个问题的,在finally代码块中存放的代码都是一定会被执行的。 finally的语法: try{ }catch(...){ }finally{ 无论try中是否发生异常,也无论catch是否捕获异常,也不管try和catch中是否有return语句,都一定会执行 } 或 try{ }finally{...

qq_43555873的博客 378

有return的情况下try catch finally的执行顺序的各种情况分析

结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally中最好不...

xiaoyu131的博客 124

Java/JavaScript中return语句和finally子句的执行顺序

1、不管有无出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally中最好不要包含re...

友人C君的博客 718

有return的情况下try catch finally的执行顺序(最有说服力的总结)

结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行;

young_kim的技术博客 390

Finally 的使用方式

在java中 finally用于try-catch后用来必须执行末段程序 ,在异常处理中,如果进行形如: try { }catch(){ } 之类的处理之后,这个流程之后的代码便不会在被 执行了,如果在读入文件流的过程中,如果我们读取了一个文件进入流,然后发生了某种异常,导致代码终止。那就意味着文件被打开 ,并没后被关闭了。 此时就需要用到finally去必须执行文件关闭函数了。 fi...

qq_38970328的博客 6116

java try 返回值_java异常,try...catch...finally代码执行情况,以及代码最终返回值详解...

(1)finally块中的代码是无论try中是否发生异常,也无论catch是否可以捕获异常,也不管try和catch中是否有return语句,都会执行的部分(2)如果finally中有return语句,那么try...catch...finally结构一定从finally中的return回去(3)如果finally中没有return语句,那么try...catch...finally结构才会从t...

weixin_42113456的博客 283

Java异常处理中finally什么时候不执行???执行的逻辑

finally语句块什么时候不执行? 1、没运行到try-catch语句这里就返回了。 1)在try语句之前,方法就有返回值,返回了,未执行到try语句。 int method{ return 1; //直接返回,运行不到try语句 try{ }finally{ } } 2)在运行到try语句之前,方法出错了,程序就崩溃了。如:i = i / 0; //抛出异常,未执行到try语句块 int method{ int num = 1/0; ...

weixin_49299097的博客 7903

try—catch—finally中,如果catch中return了,finally还会执行吗?

1.一般情况下,finally里的代码一定会执行2.如果catch中有return,也会在return之前,执行finally代码块3.有异常:会立即中止try中的代码执行,无论try有无return,直接跳到catch中处理异常,然后执行finally4.无异常:try中有return,等到要执行return之前,把finally中的代码执行完,才去执行return。

qq_70457067的博客 981

异常中finally的使用

finally: (1)必然执行的异常统一处理出口。 (2)无论是否发生异常.finally必然执行,适合存放释放资源,后续处理的代码。 总之就是,大部分的情况下,finally一定会执行,但是也有不先执行finally执行的特例=> (1)finally里发生异常.程序不会执行(finally第一句产生异常后续的不会执行)。 (2)程序所在线程死亡或关闭了cpu,也就是说外界不可抗力的因素造成的电脑突然关机,停电等。 下面看一下两个finally一定会执行后的不同结果: 首先先描述一下执行的过程,如

weixin_45060897的博客 1305
上一篇: java构造方法
下一篇: JAVA基础语法
Fecker
博客等级 码龄9年 59粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值