Запись строки (REG_SZ) оценивает реестру в C++

Как объяснили другие, «черная дыра» заключается в том, что метание внутри .catch продолжает цепочку с отклоненным обещанием, и у вас больше нет уловов, что приводит к неразрывной цепочке, которая проглатывает ошибки (плохие!)

Добавьте еще один улов, чтобы увидеть, что происходит:

do1().then(do2).catch(function(err) {
    //console.log(err.stack); // This is the only way to see the stack
    throw err; // Where does this go?
}).catch(function(err) {
    console.log(err.stack); // It goes here!
});

Улов в середине цепочки полезен, когда вы хотите, чтобы цепочка продолжалась, несмотря на неудачный шаг, но повторный бросок полезен для continue failing после выполнения таких действий, как ведение журнала информации или шагов очистки, возможно, даже изменение этой ошибки.

Trick

Чтобы ошибка возникла как ошибка в веб-консоли, как вы изначально планировали, я использую этот трюк:

.catch(function(err) { setTimeout(function() { throw err; }); });

Even номера строк выживают, поэтому ссылка в веб-консоли выводит меня прямо в файл и строку, где произошла ошибка (оригинальная).

Почему это работает

Любое исключение в функции, называемой поскольку обработчик выполнения обещаний или отклонения автоматически преобразуется в отказ от обещания, которое вы должны вернуть. Код обещания, который вызывает вашу функцию, позаботится об этом.

Функция, вызываемая setTimeout, с другой стороны, всегда работает из стабильного состояния JavaScript, то есть работает в новом цикле в цикле событий JavaScript. Исключения там не пойманы ничем и не попадают в веб-консоль. Поскольку err содержит всю информацию об ошибке, включая исходный стек, номер файла и строки, он по-прежнему сообщается правильно.

18
задан Brian Sweeney 2 February 2009 в 21:29
поделиться

1 ответ

Я чувствую себя глупым. Решение состоит в том что потребность правильно выйти из наклонной черты в строке следующим образом:

LPCTSTR sk = TEXT("SOFTWARE\\TestSoftware");

, Надо надеяться, кто-то находит это полезным...

33
ответ дан 30 November 2019 в 07:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: