Chrome 扩展程序中的异常处理

Exception handling in Chrome extensions

本文关键字:异常处理 程序 扩展 Chrome      更新时间:2023-09-26

我似乎在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
    }
});

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