2013-10-10 10 views
7

Mój kod JavaScript (setki linii) zawiesza się w Chrome i kiedy debuguję problem, dowiaduję się, że zmienna była niezdefiniowana. Nie dostaję błędów w konsoli. To sprawia, że ​​debugowanie jest bardziej czasochłonne, ponieważ nie ma błędów ani wyjątków, ani niczego, co podpowiada mi, gdzie jest problem.Jak zmusić debuger Chrome do zerwania lub błędu podczas pracy nad niezdefiniowanymi zmiennymi

Nie chcę dodawać kodu debugowania. Czy istnieje sposób, aby debugger zgłosił błąd, włamał się do debuggera lub dał wyjątek lub pokazał coś użytecznego dla programisty podczas uderzania niezdefiniowanej zmiennej w czasie wykonywania? Nie musi to być tylko Chrome.

Odpowiedz

10

Możesz włamać się do debugera DevTools, gdy wystąpi błąd JavaScript z użyciem funkcji Pause on JavaScript Exceptions. Ma dwa aktywne tryby; wstrzymaj wszystkie wyjątki i zatrzymaj się na niezakłóconych wyjątkach.

Na podstawie opisu Twojego doświadczenia, aplikacja, nad którą pracujesz, może zawierać błędy, które są przechwytywane, ale nie są ponownie zgłaszane ani rejestrowane. Korzystanie z opcji "Wstrzymaj na wszystkie wyjątki" (niebieska ikona pauzy w kolorze niebieskim) pomoże w tym scenariuszu.

Uwaga: niektóre biblioteki, takie jak jQuery, przechwytują wyjątki i nie rzucają ich ponownie. Jeśli masz takie doświadczenie, możesz potrzebować przejść przez te wyjątki lub ustawić funkcję "Wstrzymaj przy wszystkich wyjątkach" po załadowaniu wszystkich zależności.

2
window.onerror = function() { debugger; } 
Powiązane problemy