Javascript Rhino попробуйте поймать область во время отладки - PullRequest
0 голосов
/ 18 мая 2018

В настоящее время я использую библиотеку 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, отображается как undefined . Но когда я пытаюсь запустить тот же код, исключение выводится правильно.Единственная проблема, которую я вижу, это при отладке кода.

1 Ответ

0 голосов
/ 22 июня 2018

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, например, когда переменная фактически не доступна внутри области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...