Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
健壮的Javascript异常处理_Javascript_Exception_Exception Handling - Fatal编程技术网

健壮的Javascript异常处理

健壮的Javascript异常处理,javascript,exception,exception-handling,Javascript,Exception,Exception Handling,我正在开发一个DHTML/Javascript应用程序,它依赖于一些高级功能(DOM操作、AJAX、Flash通信等)。我非常关心功能性--如果出现问题,即使在部署应用程序之后,我也要确保我知道原因和如何修复问题--而且,我还要确保用户能够继续使用应用程序,如果异常严重,可能会减少功能 我目前有一个日志和异常处理系统,通过该系统,函数可以生成日志,如果捕获到异常,所有日志都会通过电子邮件发送给我。这个系统运行良好,但我想让它更健壮。我在寻求建议 我的一个想法是将每个javascript函数体包装

我正在开发一个DHTML/Javascript应用程序,它依赖于一些高级功能(DOM操作、AJAX、Flash通信等)。我非常关心功能性--如果出现问题,即使在部署应用程序之后,我也要确保我知道原因和如何修复问题--而且,我还要确保用户能够继续使用应用程序,如果异常严重,可能会减少功能

我目前有一个日志和异常处理系统,通过该系统,函数可以生成日志,如果捕获到异常,所有日志都会通过电子邮件发送给我。这个系统运行良好,但我想让它更健壮。我在寻求建议

我的一个想法是将每个javascript函数体包装在一个try/catch块中,在捕获异常时,记录函数名,然后将错误抛出到全局处理程序。但是,仅仅为了跟踪发生异常的函数,就需要编写大量代码


有没有办法让运行时异常更容易查找和复制?

与向N个函数添加N个try/catch块相比,使用
窗口.onerror
事件可能更容易

JavaScript工具包提供了您可以使用的。特别是:


如果您喜欢堆栈跟踪,可以签出(或)。这是我所知道的少数几个尝试跨浏览器工作的方法之一。

我实际上已经用我的gloabl异常处理程序捕获了所有异常,并且还使用了他的堆栈跟踪。。。问题是,在IE(大多数错误发生的地方)中,跟踪只是一个“匿名函数”的长列表,并没有给我任何异常实际发生的线索…没有其他人回答这个问题。。。所以我想你的答案是最好的…:-)@Josh-我相信
window.onerror
可能无法捕获jQuery事件处理程序中的错误-@Josh:您是否确保匿名函数具有名称?
window.onerror = function (msg, url, line) {
  alert('Error message: ' + msg + '\nURL: ' + url + '\nLine Number: ' + line);
  return true;
}