#39t本人初学javascript,求大神指点一下try,catch,finally中finally的作用,最好有例子~~~喵~~~无限感激
本帖最后由 秋声赋 于 2013-1-24 21:44 编辑
就是清理的意思嘛
清理Try中的资源
防止出错导致的资源没有正确释放
资源没正确释放的后果还是挺严重的
内存泄露啊 句柄没释放啊(会导致这个资源在进程结束前 无法被访问)
都被秋秋姐姐说掉了。。。。
try {
//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
// 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
//e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}
大概就是这么一个用法~~
不管try代码块的执行时如何被终止的(出现异常、return、自然终止)finally中的语句始终会被执行,正是由于finally的这种特性,通常finally用来执行一些清理工作。这里的清理工作指的是一些try catch影响之外的处理,比如之前try中有return类似的功能,代码也会先执行finally中的语句,再回到try中执行最后的return。
但是我看书上说finally里面放清理语句,那是神马意思~~~???#39t
我没学过js
但是应该所有语言都是差不多的吧
就是无论try中的语句是否执行成功 都要执行finally的语句
最常用的就是文件操作中
try中打开一个流
但是try中的语句可能会失败
导致只执行cath中的语句
try后面的语句没执行
所以关闭流的代码就应该放在finally里面 确保这个流会被关闭