Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理chrome.runtime.lastError的最佳方法_Javascript_Google Chrome_Google Chrome Extension_Error Handling - Fatal编程技术网

Javascript 处理chrome.runtime.lastError的最佳方法

Javascript 处理chrome.runtime.lastError的最佳方法,javascript,google-chrome,google-chrome-extension,error-handling,Javascript,Google Chrome,Google Chrome Extension,Error Handling,大家都知道,lastError是API中的一个全局变量或属性,用于确定chrome API调用执行期间是否发生了错误 它仅在出现错误时定义,如果API调用正常,则不会定义它。该错误可能由多种原因触发,例如,由于缺少或错误的参数类型导致API调用错误,或者可能由用户交互引起,例如,用户通过按“取消”按钮拒绝权限授予 Chrome统一了它的错误处理,它使用这个变量在API中报告错误,而不是返回错误参数。由于它的API的异步性质,Chrome会进行额外的检查,以验证是否在扩展代码的回调函数中检查/处理

大家都知道,
lastError
是API中的一个全局变量或属性,用于确定chrome API调用执行期间是否发生了错误

它仅在出现错误时定义,如果API调用正常,则不会定义它。该错误可能由多种原因触发,例如,由于缺少或错误的参数类型导致API调用错误,或者可能由用户交互引起,例如,用户通过按“取消”按钮拒绝权限授予

Chrome统一了它的错误处理,它使用这个变量在API中报告错误,而不是返回错误参数。由于它的API的异步性质,Chrome会进行额外的检查,以验证是否在扩展代码的回调函数中检查/处理了
Chrome.runtime.lastError
,否则会抛出著名的
Unchecked runtime.lastError

您可以通过检查chrome.runtime.lastError.message来快速获取错误消息,并将其显示给用户,所有这些对于大多数用例来说都是非常好的,但是如果这是我的情况,我不会写这个问题

那么,当您需要基于错误结果实现一些额外的代码逻辑时会发生什么呢。让我们举个例子,为了问题的简单性,我将只关注可能发生的两种结果/错误:

  • 需要用户交互。
    在使用错误参数值进行API调用时抛出,在这种情况下
    interactive=false
  • 用户未批准访问。
    在用户关闭身份验证窗口时发生
  • 所以我的问题是,基于错误实现附加逻辑的最佳方式是什么? 是比较chrome.runtime.lastError.message的唯一方法,如果是,考虑到用户浏览器语言可能不同于英语,是否安全


    您认为chrome开发团队应该实现什么:
    chrome.runtime.lastError.code

    消息将始终是英文的,因为它是一个内部API。@wOxxOm知道这一点很好,但是依赖消息是否安全,因为它们没有在文档中定义,我想它们可能会突然发生变化。嗯,没有别的办法了。消息没有更改。它们可以更改,但直到现在这种情况才发生,除非消息中有输入错误或其他明显错误。我不知道答案,但您的介绍回答了我关于未检查运行时错误的问题:)