16

我似乎在 Chrome 扩展文档中找不到任何关于异常处理的内容。所有的异步 api 都使得在不到处乱扔 try / catch 语句的代码中变得非常困难..

如何将全局异常处理程序添加到我的后台页面,以便在发生异常时进行一些资源清理?

4

2 回答 2

17

您可以使用以下命令在执行脚本回调中获取错误chrome.runtime.lastError

chrome.tabs.executeScript(tabId, details, function() {
    if (chrome.runtime.lastError) {
       var errorMsg = chrome.runtime.lastError.message
       if (errorMsg == "Cannot access a chrome:// URL") {
           // Error handling here
       }
    }
})
于 2013-11-15T09:22:04.713 回答
4

我无法找到全局错误处理程序,但我能够提出一个同样有效的解决方案。

它确实取决于您调用的方法。我的大部分错误来自调用chrome.tabs.executeScript()页面chrome://或 chrome webstore 页面。此函数的最后一个参数是一个包含results数组的回调。我发现如果这是undefined我收到的错误消息。通过这种方式,我能够设置一个简单的错误处理功能,以便在出现错误时通知用户。

chrome.tabs.executeScript(null, {file: '/path/to/file.js'}, function(results) {
    if (results === undefined) {
        // Fire error handling code
    }
});

同样,Idk 如果这适用于您调用的方法,但我能够以这种方式做我想做的事。

于 2013-08-15T21:36:27.037 回答