«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как записать трассировку стека пользовательских исключений в JavaScript?

Как записать трассировку стека пользовательских исключений в JavaScript?

Опубликовано 8 ноября 2024 г.
Просматривать:373

How to Capture Stack Traces of Custom Exceptions in JavaScript?

Получение трассировки выброшенных исключений

Хотя JavaScript позволяет создавать исключения, получение трассировки стека для пользовательского исключения может быть сложной задачей . В этой статье рассматриваются различные методы получения трассировок стека специально для определенных пользователем исключений.

Свойство stack объекта Error предоставляет простое решение. Создав новый объект Error и получив доступ к его свойству стека, вы можете записать трассировку:

function stackTrace() {
    var err = new Error();
    return err.stack;
}

Этот подход генерирует трассировку стека, похожую на:

DBX.Utils.stackTrace@http://localhost:49573/assets/js/scripts.js:44
DBX.Console.Debug@http://localhost:49573/assets/js/scripts.js:9
.success@http://localhost:49573/:462
x.Callbacks/c@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
x.Callbacks/p.fireWith@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
k@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
.send/r@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6

Этот формат предоставляет вызывающую функцию, URL-адрес и последующие вызывающие функции.

Для современных браузеров доступен более простой метод:

console.trace(); // (MDN Reference)

Эта функция захватывает трассировку стека и отображает ее в консоли.

Альтернативный вариант был предложен в исходной теме:

function stacktrace() { 
  function st2(f) {
    return !f ? [] : 
        st2(f.caller).concat([f.toString().split('(')[0].substring(9)   '('   f.arguments.join(',')   ')']);
  }
  return st2(arguments.callee.caller);
}

Эта функция рекурсивно обходит стек вызовов и создает строку трассировки стека.

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

Заявление о выпуске Эта статья перепечатана по адресу: 1729175015. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3