Ψάχνω για ένα ισοδύναμο στο 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].
Επεξεργασία: Ο αρχικός σύνδεσμος με τον οποίο απάντησα είναι πλέον άκυρος.Η νεότερη διεύθυνση URL θα είναι https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions από τις 2016-11-11.
Αντιλαμβάνομαι ότι αυτή η ερώτηση έχει μια απάντηση, αλλά δεν είναι πλέον ακριβής. Χρησιμοποιήστε τον παραπάνω σύνδεσμο ^
(ο σύνδεσμος αντικαταστάθηκε από τον παραπάνω επεξεργασμένο) - μπορείτε τώρα να το ορίσετε να σπάει σε όλες τις εξαιρέσεις ή μόνο σε μη επεξεργασμένες. (Σημειώστε ότι πρέπει να βρίσκεστε στην καρτέλα Πηγές για να δείτε το κουμπί).
Το Chrome's πρόσθεσε επίσης μερικές άλλες πραγματικά χρήσιμες δυνατότητες σημείων διακοπής τώρα, όπως το σπάσιμο σε αλλαγές DOM ή συμβάντα δικτύου.
Κανονικά δεν θα απαντούσα ξανά σε μια ερώτηση, αλλά είχα την ίδια ερώτηση και εγώ ο ίδιος, και βρήκα αυτή τη λανθασμένη πλέον απάντηση, οπότε σκέφτηκα να βάλω αυτές τις πληροφορίες εδώ για όσους ήρθαν αργότερα ψάχνοντας :)
Σχεδόν κάθε σφάλμα θα προκαλέσει μια εξαίρεση. Τα μόνα σφάλματα που μπορώ να σκεφτώ ότι δεν θα λειτουργούσαν με την επιλογή "pause on exceptions" είναι τα συντακτικά σφάλματα, τα οποία συμβαίνουν πριν εκτελεστεί οποιοσδήποτε από τον κώδικα, οπότε δεν υπάρχει μέρος για παύση ούτως ή άλλως και κανένας από τον κώδικα δεν θα εκτελεστεί.
Προφανώς, το Chrome δεν θα κάνει παύση στην εξαίρεση αν βρίσκεται μέσα σε ένα μπλοκ try-catch. Κάνει παύση μόνο σε εξαιρέσεις που δεν έχουν συλληφθεί. Δεν ξέρω κανέναν τρόπο να το αλλάξω.
Αν θέλετε απλώς να ξέρετε σε ποια γραμμή συνέβη η εξαίρεση (τότε θα μπορούσατε να ορίσετε ένα σημείο διακοπής αν η εξαίρεση είναι αναπαραγώγιμη), το αντικείμενο Error
που δίνεται στο μπλοκ catch έχει μια ιδιότητα stack
που δείχνει πού συνέβη η εξαίρεση.