繁体   English   中英

Chrome 扩展中的异常处理

[英]Exception handling in Chrome extensions

我似乎无法在 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://页面或 chrome 网上商店页面上调用chrome.tabs.executeScript() 此函数的最后一个参数是包含results数组的回调。 我发现如果这是undefined我会收到一个错误。 通过这种方式,我能够设置一个简单的错误处理功能,以在出现错误时通知用户。

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

再次,如果这适用于您正在调用的方法,但我能够以这种方式做我想做的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM