强大的Javascript异常处理

Jos*_*osh 6 javascript exception-handling exception

我正在开发一个DHTML/Javascript应用程序,它依赖于一些高级功能(DOM操作,AJAX,Flash通信等).我非常关心功能 - 如果出现问题,即使在部署应用程序之后,我想确保我知道为什么以及如何解决它们 - 而且,我想确保用户能够继续使用应用程序,如果异常严重,可能会降低功能.

我目前有一个日志记录和异常处理系统,函数可以生成日志,如果发现异常,所有日志都会通过电子邮件发送给我.该系统运行良好,但我想使其更健壮.我正在寻找建议.

我的一个想法是将每个javascript函数的主体包装在try/catch块中,并在捕获异常时记录函数的名称,然后将错误抛给全局处理程序.但是,这是为了追踪异常发生的功能而进行的大量代码.

任何使运行时异常更容易查找和重现的想法?

Jon*_*ski 4

使用事件可能更容易,而不是向N 个函数添加N 个try/catch 块。window.onerror

JavaScript Kit 有一系列您可以使用的示例。特别是第三个

window.onerror = function (msg, url, line) {
  alert('Error message: ' + msg + '\nURL: ' + url + '\nLine Number: ' + line);
  return true;
}
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢堆栈跟踪,您可以查看Eric Wendelin 的(或Luke Smith 的更新)。这是我所知道的少数几个尝试跨浏览器工作的之一。