try/catch/finally执行顺序

问题描述

public int getNumber() {int a = 0;try {String s = "t"; ------------------------(1)a = Integer.parseInt(s);-----------(2)return a;} catch (NumberFormatException e) {a = 1;-----------------------------------(3)return a;-------------------------------(4)} finally {a = 2;-----------------------------------(5)}}1、程序中标记的代码的执行顺序?2、改程序的最后返回值(外部调用时)?

解决方案

程序按顺序从上到下执行到(2),字符"t"转换成整数失败,产生异常并被捕获,于是对a赋值成1,并将此值作为此方法的返回值(可以这么认为,该方法有一个存放返回值的空间,此时将1放在此处)。由于存在finally块,在返回前将该方法的内部变量a修改成2。所以程序将按标记的顺序执行,外部调用该方法时得到的结果是1
解决方案二:
先执行try或catch会产生异常结果,然后在执行finally,接着执行try或catch后return
解决方案三:
先执行try或catch里里面的代码,然后在执行finally,在执行try或cathc里面的return,,

时间: 2024-10-03 14:49:46

try/catch/finally执行顺序的相关文章

Enterprise Library Policy Injection Application Block 之四:如何控制CallHandler的执行顺序

一.为什么CallHandler需要进行排序 PIAB为我们提供了一个很好地实现AOP的方式.AOP旨在实现Business Logic和Non-Business Infrastructure Logic的分离.通过PIAB,我们将这些业务无关的逻辑定义在一个个的CallHandler中,然后通过Attribute或者Configuration的方式,将我们所需的CallHandler运用到相应的目标对象中.从这个意义上讲,PIAB具有很好的Flexibility和Extensibility.但

hibernate-Hibernate 语句执行顺序问题

问题描述 Hibernate 语句执行顺序问题 代码: private static void editInfo() { Session session = null; try { session = HibernateUtil.getSession(); if (session != null) { session.beginTransaction(); Person p = new Person("王三", 22, "男", "北京"); s

探析浏览器执行JavaScript脚本加载与代码执行顺序_javascript技巧

本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题 1. 关于JavaScript脚本执行的阻塞性 JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页面的解析.渲染以及其他资源的下载都要停下来等待脚本执行完毕①.这一点是没有争议的,并且在所有浏览器中的行为都是一致的,原因也不难理解:浏览器需要一个稳定的DOM结构,而JavaScript可能会修改DOM(改变DOM结构或修改某个

Javascript基础与面向对象基础~Javascript中的语句如何被执行,如何改变执行顺序

本讲主要是JS语言中的代码如何被解释执行的,这个问题其实和其它语言是一样的,程序执行顺序为"从上到下",当然如果代码中有分支,它的执行顺序可能有所改变,而这种支在程序设计中叫做"分支结构(条件结构)",再或者某个操作需要反复执行10次,这在程序设计中叫做"循环结构". 正常的程序结构 //普通的结构 var info = "hello world" console.log(info); 带有分支的程序结构 //IF条件结构 v

javascript的执行顺序

 JavaScript是一种描述型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行 如果你不能理解javaScript语言的运行机制,或者简单地说,你不能掌握javascript的执行顺序,那你就犹如伯乐驾驭不了千里马,让千里马脱缰而出,四处乱窜.   那么JavaScript是怎么来进行解析的吗?它的执行顺序又是如何的呢?在了解这些之前,我们先来认识几个重要的术语:   1.代码块 JavaScript中的代码块是指由<script>

SQLServer中SELECT语句的执行顺序

今天在写一条语句的时候,在查询分析器里边执行 要用10s,换用另外一种写法只用少于1s的时间,同事说是因为Sql句语执行顺序的原因.之前看过一点相 关的书,有一点印象,到网上找了资料,学习下. 逻辑查询处理步骤 复制代码 代码如下: (8)SELECT (9)DISTINCT (11)<TOP_specification> <select_list> (1)FROM <left_table> (3) <join_type> JOIN <right_ta

CSS执行顺序与优先权的问题

核心提示:CSS执行顺序与优先权的问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其中涉及到的问题其实很多. CSS执行顺序与优先权的问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其中涉及到的问题其实很多. 首先就是CSS规则的specificity(特殊性),CSS2.1有一套关于specificity的计算方式,用一个四位的数字串(CSS2是三位)来表示,最终

你是否理解&amp;#106avascript的执行顺序?

执行 通常状况下,javascript作为一种解释性的脚本,都是从上而下顺序执行的,但是JavaScript还允许在其语句中嵌套,也就是这个样子: document.write("<script>alert(t);</scr"+"ipt>"); 注意:</script>不能写作</script>,要用字符串连接的形式来表述,否则会有语法错误,估计是因为JavaScript遇到</script>就以为脚本结束

Javascript在网页页面加载时的执行顺序

javascript|加载|网页|页面|执行 一.在HTML中嵌入Javasript的方法 直接在Javascript代码放在标记对<script>和</script>之间 由<script />标记的src属性制定外部的js文件 放在事件处理程序中,比如:<p >点击我</p> 作为URL的主体,这个URL使用特殊的Javascript:协议,比如:<a href="javascript:alert('我是由javascript