【问题标题】:iMacros: Doesn't work try catch syntax in javascriptiMacros:在javascript中尝试捕获语法不起作用
【发布时间】:2016-06-20 22:35:17
【问题描述】:

我在 firefox 中使用 js 编写了一些 iMacros 脚本。 但我不能使用 try catch 语法。

    try {
        throw new Error("NotImplementedError message");
    } catch (ex1) {
        alert("ex1 instanceof Error = " + (ex1 instanceof Error));
        alert("ex1.name = " + ex1.name);
        alert("ex1.message = " + ex1.message);
    }

TypeError: ex1 is undefined, line 5

screenshot

【问题讨论】:

  • 很奇怪,因为我在this jsfiddle 上运行了这段代码,它按预期工作。
  • 您能否添加更多上下文?你的 FF 版本是什么,iMacros 的版本是什么,你是如何运行脚本的?运行时会显示警报吗?
  • 是正确的js代码。但它在 iMacros 中不起作用。 Ubuntu 16.04、FireFox 47.0、iMacros for Firefox 8.9.7 添加截图
  • 我在我的 Firefox(linux 64 位,版本 47.0)上安装了 iMacros(版本 8.9.7),现在我可以重现您的错误。 I tried a couple tricks 就像定义一个新函数并将 ex1 作为参数传递或克隆异常对象一样,但它似乎在您第一次访问后立即消失,我同意这真的很奇怪。
  • 感谢@Jezor,我已经写好了票。我会写一个回复。

标签: javascript imacros


【解决方案1】:

我已发送报告。他们已经批准了。但我不知道他们会解决它。

所以我写了临时修复:

    let Exception = {
        error: undefined,
        throw: function(error){
            this.error = error;
            throw error;
        },
    };

使用:

    try {
        Exception.throw(new Error('some text'));
    } catch(e) {
        e = Exception.error;
    //...
    }

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多