Szukam w Chrome odpowiednika funkcji „włamuj się na wszystkie błędy” Firebug. Na karcie Skrypty Chrome „wstrzymuje wszystkie wyjątki”, ale nie jest to tak samo jak łamanie wszystkich błędów.
Na przykład podczas ładowania strony z następującym kodem chciałbym, aby Chrome złamał linię foo.bar = 42
. Zamiast tego nawet po włączeniu opcji „Wstrzymaj na wszystkich wyjątkach” nie otrzymuję oczekiwanego rezultatu.
<!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>
Możesz wypróbować kod wklejony powyżej na tej stronie lub używając tego jsFiddle .
javascript
google-chrome
debugging
webkit
avernet
źródło
źródło
console.log(gaga)
) lub do niezdefiniowanej właściwości (jak wwindow.foo.bar
).Odpowiedzi:
Edycja: oryginalny link, na który odpowiedziałem, jest teraz nieprawidłowy . Nowszy adres URL to https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions od 11.11.2016.
Zdaję sobie sprawę, że to pytanie ma odpowiedź, ale nie jest już dokładne. Użyj linku powyżej ^
(link zastąpiony edytowanym powyżej) - możesz teraz ustawić, aby łamał wszystkie wyjątki lub tylko nieobsługiwane. (Pamiętaj, że musisz być na karcie Źródła , aby zobaczyć przycisk).
Chrome dodał także teraz kilka innych naprawdę przydatnych funkcji punktu przerwania, takich jak łamanie zmian DOM lub zdarzeń sieciowych.
Normalnie nie odpowiedziałbym ponownie na pytanie, ale sam miałem to samo pytanie i znalazłem tę złą odpowiedź, więc pomyślałem, że umieszczę tę informację tutaj dla osób, które przyszły później w poszukiwaniu. :)
źródło
Mam problem z uzyskaniem go, dlatego publikuję zdjęcia pokazujące różne opcje:
Chrome 75.0.3770.142 [29 lipca 2018 r.]
Bardzo bardzo podobny interfejs od co najmniej Chrome 38.0.2125.111 [11 grudnia 2014 r.]
W zakładce
Sources
:Po aktywowaniu przycisku możesz zaznaczyć
Pause On Caught Exceptions
pole wyboru poniżej:Poprzednie wersje
Chrome 32.0.1700.102 [03 lutego 2014]źródło
Jest to teraz obsługiwane w Chrome przez przycisk „Wstrzymaj na wszystkich wyjątkach”.
Aby to włączyć:
Zauważ, że ten przycisk ma wiele stanów. Klikaj przycisk, aby się przełączać
źródło
Prawie każdy błąd spowoduje wyjątki. Jedyne błędy, jakie mogę wymyślić, które nie działałyby z opcją „pauza na wyjątkach”, to błędy składniowe, które występują przed wykonaniem dowolnego kodu, więc i tak nie ma miejsca na pauzę i żaden kod nie zostanie uruchomiony.
Najwyraźniej Chrome nie zatrzyma się na wyjątku, jeśli znajduje się w bloku try-catch. Zatrzymuje się tylko w przypadku niewyłapanych wyjątków. Nie wiem, jak to zmienić.
Jeśli potrzebujesz tylko wiedzieć, w której linii wystąpił wyjątek (wtedy możesz ustawić punkt przerwania, jeśli wyjątek jest powtarzalny),
Error
obiekt podany do bloku catch mastack
właściwość, która pokazuje, gdzie wystąpił wyjątek.źródło
Niestety narzędzia programistyczne w Chrome wydają się nie być w stanie „zatrzymać wszystkich błędów”, podobnie jak Firebug.
źródło