Показать сообщение отдельно
  #3 (permalink)  
Старый 26.05.2022, 01:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Для Firefox(работает только в нем) удалось подобрать такое решение
Тоже выглядит как хак, но уже более логичный
// library code
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
var _window = iframe.contentWindow;
var callWithErrorHandling = _window.eval(`
    (function foo(func) {
        try {
            return func();
        } catch(e) {
            throw e;// Бонус от Firefox - здесь отладчик повторно не будет останавливаться
        }
    })
`);
document.body.removeChild(iframe);

// user code
function externalCodeWithError() {
    throw 123;// здесь будет остановка при включенном "Pause on exceptions" и выключенном "Pause on caught exeptions"
}
callWithErrorHandling(externalCodeWithError);
Ответить с цитированием