Как мне убедиться, что все ошибки JavaScript записаны на консоли инструментов разработчика Chrome?

StackOverflow https://stackoverflow.com/questions/9318728

  •  26-10-2019
  •  | 
  •  

Вопрос

Рассмотрим следующую функцию JavaScript:

function triggerError() {
   var something = undefined;
   // The next line will trigger 'TypeError: Cannot call ... of undefined'
   something.doesNotExist();
}

При запуске triggerError(); Непосредственно следующая ошибка записывается на консоль инструментов разработчика Chrome в красном, что ожидается:

TypeError: Cannot call method 'doesNotExist' of undefined

Однако когда triggerError(); запускается из слушателя событий, в консоли не записываются ошибки (вызов функции просто молча умирает в something.doesNotExist();), что делает вещи довольно сложными для отладки в случае опечаток и т. Д.

Как мне убедиться, что все ошибки записаны на консоли инструментов разработчика Chrome, включая ошибки, генерируемые в коде, которые выполняются от слушателей/обратных вызовов?

Одним из очевидных рабочих try { ... } catch (x) { console.log(x) }; Повсюду, но так как я не знаю заранее, где я буду добавлять опечатки, это не путь вперед.

Это было полезно?

Решение

Не могли бы вы показать ваш образец, я попытался воспроизвести его на следующем фрагменте, и он работает для меня отлично:

<script>
function triggerError() {
   var something = undefined;
   // The next line will trigger 'TypeError: Cannot call ... of undefined'
   something.doesNotExist();
}
window.addEventListener("click", triggerError, true);
</script>
<body onclick="triggerError()">
</body>

Другие советы

Вы можете использовать try catch :

function triggerError() {
    try{
        var something = undefined;
        // The next line will trigger 'TypeError: Cannot call ... of undefined'
        something.doesNotExist();
   }catch(ex){
        console.error(ex.message);
   }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top