大家好,今天我们来讲一个笔试和面试偶尔都会问到的问题,并且在工作中不知道原理,也会造成滥用。 大家可能都知道,try 块用来捕获异常,catch块是处理try块捕获的异常,finally 块是用来关闭资源。一个try块后面可以跟多个catch块,如果后面一个catch块也不跟,就一定要跟一个 ...
今天看一个Java SSH的面试题,题目大概意思是:try catch中存在return语句,还会执行finally块吗 如果执行,是return先执行还是finally先执行 如果有多个return语句,结果如何 看了以后我还真犯嘀咕,做了软件开发这些年,还没认真思考过则个问题,于是赶紧写个测试测试代码如下: 为了探究个明白,使用ILSpy工具查看IL代码,GetValue 的IL代码如下: ...
2014-12-12 18:17 8 1215 推荐指数:
大家好,今天我们来讲一个笔试和面试偶尔都会问到的问题,并且在工作中不知道原理,也会造成滥用。 大家可能都知道,try 块用来捕获异常,catch块是处理try块捕获的异常,finally 块是用来关闭资源。一个try块后面可以跟多个catch块,如果后面一个catch块也不跟,就一定要跟一个 ...
异常处理中,try、catch、finally的执行顺序,大家都知道是按顺序执行的。即,如果try中没有异常,则顺序为try→finally,如果try中有异常,则顺序为try→catch→finally。但是当try、catch、finally中加入return之后,就会有几种不同的情况出现 ...
如果try中没有异常,则顺序为try→finally,如果try中有异常,则顺序为try→catch→finally,但是当try、catch、finally中加入return之后,就会有几种不同的情况出现: 一:try中带有return 1、基本类型的情况下 ...
假设代码顺序书写如下:try → catch → finally → 其他代码 则: 1、正常执行顺序:try → catch → finally → 其他代码 2、try,catch和finally和其他代码的执行条件 ...
try..catch..finally这个语法大家都很熟悉,就是捕捉异常、处理异常,面试中经常被问到的一个问题是:如果在try...catch中的某某地方return了,那么之后的某某步骤还会不会执行。今天就来用代码分析一下各种可能的执行情况,懒得看文章的话,直接看最后的总结,如果不明白再回 ...
当一个方法中的 try catch finally 当有return时的执行顺序? 一个不为void的方法必须有返回值,所以在finally或try catch finally 语句之后必须有 return语句。因为return语句之后的代码无意义, 所以return ...
关于try...catch...finally里面的return一直是面试的一个热门考点。无非就分以下几个情况: 1、当有finally语句并且try中有return,在执行到return(还未执行)的时候,会先执行finally里面的内容,然后再执行行try中的return ...
目录 问题背景 finally语句一定执行吗 finally语句与return的执行顺序 问题分析 1. finally语句在f()执行之后、y返回之前执行 2. finally块中的return语句覆盖try块中 ...