我正在开发一个DHTML / Javascript应用程序,它依赖于一些高级功能(DOM操作,AJAX,Flash通信等)。我非常关心功能 - 如果出现问题,即使在部署应用程序之后,我想确保我知道为什么以及如何解决它们 - 而且,我想确保用户能够继续使用应用程序,如果异常严重,可能会减少功能。
我目前有一个日志记录和异常处理系统,函数可以生成日志,如果发现异常,所有日志都会通过电子邮件发送给我。该系统运行良好,但我想使它更健壮。我正在寻找建议。
我的一个想法是将每个javascript函数的主体包装在try / catch块中,并在捕获异常时记录函数的名称,然后将错误抛给全局处理程序。但是,为了追踪发生异常的功能,这是很多代码。
任何使运行时异常更易于查找和重现的想法都会发生?
答案 0 :(得分:4)
使用window.onerror
事件可能更容易,而不是将 N try / catch块添加到 N 函数中。
JavaScript Kit有a series of examples你可以使用。特别是3rd:
window.onerror = function (msg, url, line) {
alert('Error message: ' + msg + '\nURL: ' + url + '\nLine Number: ' + line);
return true;
}
如果您更喜欢堆栈跟踪,可以查看Eric Wendelin's(或Luke Smith's update)。这是我所知道的为跨浏览器工作的少数人之一。