Yoh*_*uki 13 javascript exception-handling onerror sencha-touch cordova
我正在研究用Sencha Touch和PhoneGap编写的复杂Web应用程序.Sencha Touch应用程序的编写方式使得很难用try/catch包围每个潜在的故障点,尤其是异步AJAX请求处理程序.
检测未处理的异常何时发生因为它看起来和感觉就像使用PhoneGap的本机应用程序(即我们不能指望它们刷新页面并再次尝试在常规浏览器中查看的Web应用程序中),这一点也非常重要.
您能否建议如何处理这种情况?
这是一个很好的问题。当然,窗口error事件永远不应该取代策略性放置的try/catch块或充分利用来自 HTTP 请求的错误响应,但在移动浏览器赶上桌面版本之前,报告真正意外的错误几乎是不可能的。
我没有时间对此进行测试;所以我现在能建议的是一个思想实验,老实说这可能是一个坏主意......
您可能会为addEventListener(也许dispatchMethod)编写替换函数,这些函数可以包装本机函数/处理程序参数try/catch并调用自定义全局错误记录器。由于没有简单的方法可以同时“挂钩”这些函数,因此毫无疑问意味着迭代许多本机对象的原型以window执行“包装”。这可以涵盖目前保持沉默的绝大多数例外情况。