可否类似vbs中on error resume next一样处理

Microogle 2009-11-23 11:31:10
在javascript中
try{
one
two
three
four
five
}
catch(e){
alert(e);
}
finally{}
错误流程中,如果执行到two出错,如何得知错误是在two,又如何从three继续执行try中的语句呢?
不会要每句嵌套try吧?
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Microogle 2009-11-24
  • 打赏
  • 举报
回复
每句嵌套可读性太差了,算了,还是自己定义吧.
可惜用不了Err.Number,Err.Description.
try{
var errNumber=1;
var oFSO = new ActiveXObject("Scripting.FileSystemObject");
errNumber = 2;
var oFile = oFSO.OpenTextFile("d:\\a.xml");
errNumber = 3;
alert(oFile.ReadAll());
oFile.Close();
}
catch(e){
switch(errNumber){
case 1:
alert("创建组件失败!");
break;
case 2:
alert("打开文件失败!");
break;
case 3:
alert("读取文件失败!");
break;
default:
alert(e);
}
}
finally{
oFile = null;
oFSO = null;
self.close();
}
嘟嘟xo 2009-11-24
  • 打赏
  • 举报
回复
每句嵌套try吧!
Microogle 2009-11-24
  • 打赏
  • 举报
回复
LS朋友代码不错,不过与我的初衷有点违背啊。
再等等没好点的方案就结贴了。
dh20156 2009-11-24
  • 打赏
  • 举报
回复
如果嵌套的可读性差,那你可以把它封装成一个队列函数,像这样:


<script>
var trylist = function(){
var args = Array.prototype.slice.call(arguments,0);
while(args.length){
var foo = args.shift();
if(foo.constructor==Function){
try{foo();}catch(e){alert(e.message);}
}
}
};

trylist(function(){alert(a);},function(){alert(b);},function(){alert(3);});
</script>
friendly_ 2009-11-23
  • 打赏
  • 举报
回复
貌似不能

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧