老师能不能详细说下finally 清理怎么实现的

老师能不能详细说下finally 清理怎么实现的

老师能不能详细说下finally 清理怎么实现的
还有老师说的如果这个变量还要用进了catch就不能用了 是这个意思吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
妮可妮可妮_ 2018-08-29 12:03:06

try{}

catch(Exception e){

}finally{}

finally里一般拿来做一些善后清理工作

try块里出现错误的话,会立即跳出try块,找到匹配的错误,执行catch块里的语句

此时,可能在try块里打开的文件没关闭,连接的网络没断开,对这些浪费的内存就不能及时释放回收。

如果有finally块的话,不管有没有出错,都会执行finally块里的内容。就能实现使用finally清理了,

同学的第二个问题不是很理解,catch是如果运行代码之后抛出错误,就会被catch里面的变量接收到,执行catch的代码,如果没有抛出错误,catch就不会捕获到,就不会执行catch里面的代码,

http://img1.sycdn.imooc.com//climg/5b861785000187e013160793.jpg

如果可以解决你的疑惑,一定要记得采纳我哦~

祝学习愉快!


  • 提问者 Beckybei #1
    老师finally清理的话可以举个例子吗,谢谢
    2018-08-29 12:17:16
  • 妮可妮可妮_ 回复 提问者 Beckybei #2
    同学对于finally可能理解的还不是很好,因为如果内部代码抛出错误代码会直接跳入catch块运行,但是不管代码有没有抛出错误,finally是一定会执行的,所以一般会拿来做一些善后清理工作,举个栗子:<body> <p>请输入 5 到 10 之间的数:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">检测输入 </button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if (x == "") throw "为空"; if (isNaN(x)) throw "不是一个数字"; if (x > 10) throw "太大"; if (x < 5) throw "太小"; } catch (err) { message.innerHTML = "输入的值 " + err; } finally { document.getElementById("demo").value = ""; } } </script> </body>finally不是一定要这样子去使用,仅供理解,祝学习愉快!
    2018-08-29 14:26:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师