logo
首页
标准版
您当前访问的是预览版网页,若要正常使用功能请戳我前往标准版
文艺de蛋蛋

#39t本人初学javascript,求大神指点一下try,catch,finally中finally的作用,最好有例子~~~喵~~~无限感激

文艺de蛋蛋

ApfelZaft 发表于 2013-1-24 21:37

都被秋秋姐姐说掉了。。。。

#31f哟吼,好的,明白啦~谢谢

文艺de蛋蛋

秋声赋 发表于 2013-1-24 21:43

就是清理的意思嘛

清理Try中的资源

防止出错导致的资源没有正确释放

#31f哟吼,好的,明白啦~谢谢

秋声赋

本帖最后由 秋声赋 于 2013-1-24 21:44 编辑

文艺de蛋蛋 发表于 2013-1-24 20:35

但是我看书上说finally里面放清理语句,那是神马意思~~~???

就是清理的意思嘛

清理Try中的资源

防止出错导致的资源没有正确释放

资源没正确释放的后果还是挺严重的

内存泄露啊 句柄没释放啊(会导致这个资源在进程结束前 无法被访问)

ApfelZaft

都被秋秋姐姐说掉了。。。。

try {

//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行

}

catch (e) {

// 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。

//e是一个局部变量,用来指向Error对象或者其他抛出的对象

}

finally {

//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。

}

大概就是这么一个用法~~

不管try代码块的执行时如何被终止的(出现异常、return、自然终止)finally中的语句始终会被执行,正是由于finally的这种特性,通常finally用来执行一些清理工作。这里的清理工作指的是一些try catch影响之外的处理,比如之前try中有return类似的功能,代码也会先执行finally中的语句,再回到try中执行最后的return。

文艺de蛋蛋

秋声赋 发表于 2013-1-24 19:46

我没学过js

但是应该所有语言都是差不多的吧

就是无论try中的语句是否执行成功 都要执行finally的语句

但是我看书上说finally里面放清理语句,那是神马意思~~~???#39t

秋声赋

我没学过js

但是应该所有语言都是差不多的吧

就是无论try中的语句是否执行成功 都要执行finally的语句

最常用的就是文件操作中

try中打开一个流

但是try中的语句可能会失败

导致只执行cath中的语句

try后面的语句没执行

所以关闭流的代码就应该放在finally里面 确保这个流会被关闭

<<0>>