我似乎在 Chrome 扩展文档中找不到任何关于异常处理的内容。所有的异步 api 都使得在不到处乱扔 try / catch 语句的代码中变得非常困难..
如何将全局异常处理程序添加到我的后台页面,以便在发生异常时进行一些资源清理?
我似乎在 Chrome 扩展文档中找不到任何关于异常处理的内容。所有的异步 api 都使得在不到处乱扔 try / catch 语句的代码中变得非常困难..
如何将全局异常处理程序添加到我的后台页面,以便在发生异常时进行一些资源清理?
您可以使用以下命令在执行脚本回调中获取错误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
}
}
})
我无法找到全局错误处理程序,但我能够提出一个同样有效的解决方案。
它确实取决于您调用的方法。我的大部分错误来自调用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 如果这适用于您调用的方法,但我能够以这种方式做我想做的事。