Трассировка стека исключений Javascript

В Firefox я могу получить трассировку стека исключения с помощью exception.stack.

Есть ли способ получить это и в других браузерах?

Редактировать: Я действительно хочу сохранить трассировку стека автоматически (если возможно), а не отлаживать ее в то время (т.е. я знаю, как получить трассировку стека в отладчике).

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
92
0
80 616
5

Ответы 5

Не совсем, по крайней мере, не легко.

В IE вы можете отлаживать процесс браузера с помощью MS Script Debugger (который по какой-то причине является компонентом Office) или Visual Studio, а затем вы можете видеть стек на точках останова.

У Webkit теперь есть функциональность, которая обеспечивает трассировку стека:

Веб-инспектор: понимание трассировки стека, опубликовано Юрием Семихатским в среду, 20 апреля 2011 г., в 7:32 (webkit.org)

Из этого сообщения:

Намного удобнее, чем создавать исключение только для просмотра его стека.

Alex Churchill 16.08.2011 06:08

Ссылка битая, но думаю здесь есть копия pjh0718.blogspot.com/2016/02/…

Stephen Turner 02.10.2018 11:30

Поместите эту строку в то место, где вы хотите распечатать трассировку стека:

console.info(new Error().stack);

Примечание: проверено мной на Хром 24 и Firefox 18

Возможно, стоит взглянуть и на этот инструмент.

Сладкий - я использую комбинацию onerror, чтобы получить номер строки, а затем оборачиваю вызывающую ошибку строкой с помощью try catch и вашего предложения, чтобы предупредить пользователя о трассировке стека. `window.onerror = function (message, url, lineNumber) {alert ('message:' + message + '- url:' + url + '- ln:' + lineNumber); вернуть истину; }; `Затем оберните его, чтобы распечатать трассировку стека. `try {// Какой-то код, вызывающий исключение. } catch (e) {предупреждение (новая ошибка (). стек); } `

Philip Murphy 01.02.2013 13:43

почему-то dies дает мне только первую строку стека. Что я делаю не так?? то есть: функция foo () {fdasmkl} try {foo ()} catch (e) {err = new Error (e) .stack; console.info (err)} = >>> Error: ReferenceError: fdasmkl is not defined at <anonymous>:6:7 вместо "Error: ReferenceError: fdasmkl is not defined at eval (eval at <anonymous> (:6:1), <anonymous>:1:1) at <anonymous>:6:1"

chitzui 21.10.2019 14:49

неважно, нашел проблему. Поскольку это уже была ошибка, я могу сделать: function foo() { fdasmkl } try { foo() } catch(e) { console.info(e.stack) } немедленно

chitzui 21.10.2019 14:53

Если вам нужна трассировка стека строк, я бы пошел с ответом insin: stacktrace.js. Если вы хотите получить доступ к частям трассировки стека (номера строк, имена файлов и т. д.), stackinfo, который фактически использует stacktrace.js под капотом.

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

https://github.com/csnover/TraceKit/

PS: Если вы ищете сервис (используя Tracekit) с хорошим пользовательским интерфейсом, вы можете попробовать Ататус

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