Javascript Chrome扩展中的异常处理

Javascript Chrome扩展中的异常处理,javascript,google-chrome-extension,Javascript,Google Chrome Extension,在Chrome扩展文档中,我似乎找不到任何关于异常处理的内容。所有的异步API都很难不在代码中到处乱放try/catch语句 如何将全局异常处理程序添加到后台页面,以便在出现异常时进行资源清理?我无法找到全局错误处理程序,但我找到了一个同样有效的解决方案 但这取决于您调用的方法。我的大多数错误都是在chrome://页面或chrome webstore页面上调用chrome.tabs.executeScript()。此函数的最后一个参数是一个回调,它包含一个results数组。我发现,如果这是未

在Chrome扩展文档中,我似乎找不到任何关于异常处理的内容。所有的异步API都很难不在代码中到处乱放try/catch语句


如何将全局异常处理程序添加到后台页面,以便在出现异常时进行资源清理?

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

但这取决于您调用的方法。我的大多数错误都是在
chrome://
页面或chrome webstore页面上调用
chrome.tabs.executeScript()
。此函数的最后一个参数是一个回调,它包含一个
results
数组。我发现,如果这是
未定义的
,我将返回一个错误。通过这种方式,我可以设置一个简单的错误处理函数,在出现错误时通知用户

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

同样,Idk,如果这适用于您正在调用的方法,但我可以通过这种方式执行我想要的操作。

您可以通过以下方法在执行脚本回调中获得错误:


有些变量是在错误或异常期间设置的,到目前为止还没有明确的错误处理方法。如果您想进行资源清理,可以将代码放入一些管理事件处理程序中
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
       }
    }
})