Я ищу эквивалент в Chrome функциональности Firebug «перерыв на всех ошибках». На вкладке «Сценарии» в Chrome есть «пауза по всем исключениям», но это не совсем то же самое, что разбивать все ошибки.
Например, при загрузке страницы со следующим кодом я бы хотел, чтобы Chrome оборвался в строке foo.bar = 42
. Вместо этого, даже при включении «Паузы на все исключения», я не получаю ожидаемого результата.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
function doError() {
foo.bar = 42;
}
window.onload = function() {
try {
doError();
} catch (e) {
console.log("Error", e);
}
}
</script>
</head>
<body>
</body>
</html>
Вы можете попробовать код, вставленный выше на этой странице или используя этот [jsFiddle][2].
У меня возникли проблемы, чтобы получить его, поэтому я публикую фотографии, показывающие различные варианты:
На вкладке Sources
:
введите описание изображения здесь! введите описание изображения здесь!
Изменить: Первоначальная ссылка, на которую я ответил, теперь недействительна . Более новым URL-адресом будут https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints# исключения по состоянию на 2016- 11-11.
Я понимаю, что у этого вопроса есть ответ, но он больше не точен. Используйте ссылку выше ^
(ссылка заменена на отредактированную выше) - теперь вы можете установить ее на все исключения или просто на необработанные. (Обратите внимание, что вам нужно быть на вкладке Источники , чтобы увидеть кнопку.)
Chrome также добавил некоторые другие действительно полезные возможности точки останова, такие как взлом изменений DOM или сетевых событий.
Обычно я не отвечал на вопрос повторно, но у меня был тот же вопрос, и я нашел этот неправильный ответ, поэтому я решил, что положу эту информацию сюда для людей, которые пришли позже в поиске. :)
Теперь это поддерживается в Chrome кнопкой «Пауза на все исключения».
Чтобы включить это:
Обратите внимание, что эта кнопка имеет несколько состояний. Продолжайте нажимать кнопку, чтобы переключаться между ними
Почти любая ошибка бросит исключения. Единственные ошибки, о которых я могу думать, которые не будут работать с опцией «пауза на исключения», - это синтаксические ошибки, которые возникают до того, как будет выполнен какой-либо код, поэтому в любом случае нет места для паузы, и ни один из кода не будет работать.
Очевидно, что Chrome не будет делать паузу в исключении, если он находится внутри блока «попробовать». Это только делает паузу на неожиданных исключениях. Я не знаю, как это изменить.
Если вам просто нужно знать, на какой линии произошло исключение (тогда вы можете установить точку останова, если исключение воспроизводится), объект Error
, данный блоку уловов, имеет свойство stack
, которое показывает, где произошло исключение.