rhino javascript尝试在调试期间捕获范围

时间:2018-05-18 05:37:35

标签: javascript rhino

我目前正在使用rhyno javascript库,在使用try catch blcok时我注意到以下问题。

以下是我的示例代码。

function main() {
    var a =0;
    try {
        throw someException;

    } catch (exception) {
           var e = exception.name;
           var error = exception;
           return "Error is :"+error;

}

在以某种方式调试代码时,在catch中声明的名为 exception 的变量显示为 undefined 。但是当我尝试运行相同的代码时,异常被正确打印。我正在看的唯一问题是在调试代码时。

1 个答案:

答案 0 :(得分:0)

Rhino在未引用时会优化掉局部变量exception。因此,在调试器中,除非您使用它,否则将不会对其进行定义。我通常使用的解决方法与您执行的类似:

try {
    doIt();
} catch (e) {
    var ex = e;
    // Now the value can be examined, because the assignment to a local variable causes the engine to require the variable in the scope
    debugger;
}

例如,当没有在范围内实际访问变量时,这种情况也可能在Chrome DevTools中发生。