如何在使用 window.onerror 处理语句 1 中的错误时继续执行语句 2
How to continue to statement2 while processing errors from statement1 with window.onerror
我使用 window.onerror(message,url,line)
来记录我的错误消息,因为它为我提供了比try{}catch(e){}
更多的调试信息。
但是,请考虑以下事项:
function1(); // Generates error
function2(); // Will not be executed
如何确保函数 2 在仍然使用 window.onerror 时触发?
你不能。如果您需要允许以后的代码执行的错误处理,则必须使用 try..抓住。
幸运的是,JavaScript没有任何等同于VB6 On Error Resume Next
的东西;它会使许多糟糕的JavaScript代码变得更糟。
在这里做了你的小提琴的分叉,我所做的只是用捕获的错误显式触发 window.onerror 事件。
似乎几乎是真的:)
try
{
function2();
}
catch(error)
{
window.onerror(error);
}
更新
找到了一种方法来获取行号和 url。代码目前有点混乱,但可以工作,所以它应该让你开始......
try
{
function1();
}
catch(error)
{
var url = error.stack.split(''n')[1].match(/'(.+')/g)[0];
var line = url.match(/'/':[0-9]+.+$/g)[0];
url = url.replace('(','').replace(line,'');
line = line.replace(')','').replace('/:','')
window.onerror(error,url,line);
}
这是工作 jsfiddle
与此同时,我找到了一种使用 setTimeout
的方法,但我希望可能有更好的方法:
setTimeout(function1);
setTimeout(function2);
见 http://jsfiddle.net/7y2Ej/1/
相关文章:
- MVC Jquery-按钮点击-获取if语句错误
- Javascript else-if语句错误
- 非法返回语句错误
- Wordpress jQuery .val 语句错误
- javascript IF 语句错误
- JavaScript If else 语句错误
- Switch语句错误
- 丢失的语句错误之前
- JavaScript if/elsif语句错误
- AngularJS得到“;缺少'使用strict'语句“-错误,甚至是艰难的I'We包括了这些陈
- & # 39;返回错误# 39;函数外的语句错误
- 未添加/减去正确金额的值以及if/else语句错误
- If和Else语句错误
- ES6取回返回语句错误
- Javascript if语句错误
- Javascript if语句错误使用and ('&&')
- JSLint三进制语句错误
- Javascript - if语句错误
- Mozilla storageService: "不能执行语句:错误:Permission denied &q
- 从jquery ajax调用php函数时出现include语句错误