Πίνακας περιεχομένων:
Βίντεο: Υπόθεση Novartis: Πολιτική διαμάχη από την εξαίρεση Τζανακόπουλου - Πολάκη 2024
Ο προγραμματισμός HTML5 και CSS3 της πραγματικής ζωής είναι επικίνδυνος. Πολλά πράγματα μπορεί να πάνε στραβά στην PHP. Έτσι ο έξυπνος τρόπος για να προγραμματίσετε δεδομένα είναι ο αμυντικός προγραμματισμός . Αυτή η πρακτική περιλαμβάνει την πρόβλεψη σφαλμάτων και την προσπάθεια επίλυσής τους με χάρη. Η PHP έχει διαθέσιμες ορισμένες προηγμένες τεχνικές αντιμετώπισης σφαλμάτων που είναι τέλειες για την εργασία.
Φανταστείτε ότι γράψατε κάποιο κώδικα που έμοιαζε με αυτό:
print 5/0;
Πιθανότατα δεν θα το κάνατε αυτό, αλλά μερικές φορές ο κακός κώδικας γλιστράει. Αν ο διακομιστής σας έχει ρυθμιστεί για να περάσει μηνύματα σφάλματος, θα δείτε κάτι τέτοιο.
Αντιμετώπιση εξαιρέσεων
Στην αρχή συμβαίνουν πολλά περισσότερα από αυτά που θα εκτιμούσατε. Η προεπιλεγμένη συμπεριφορά πολλών εγκαταστάσεων PHP είναι η απόκρυψη σφαλμάτων. Εντούτοις, εμφανίζονται σφάλματα, ειδικά εάν επιτρέπετε την είσοδο χρήστη. Αυτός ο κώδικας περιέχει ρητά παγίδες για σφάλματα και τις αναφέρει ανεξάρτητα από τις ρυθμίσεις του διακομιστή:
δοκιμάστε. phpgetMessage ();} / / end try? >
Δείτε τι συμβαίνει:
-
Χρησιμοποιήστε τη δοκιμαστική λέξη-κλειδί για να υποδείξετε δυνητικά επικίνδυνο κώδικα.
Η δοκιμαστική λέξη ανοίγει ένα μπλοκ κώδικα (όπως ένα βρόχο ή μια συνθήκη). Όλος ο κώδικας μεταξύ δοκιμής και αλίευσης θεωρείται δυνητικά επικίνδυνος.
-
Τοποθετήστε επικίνδυνο κώδικα στο δοκιμαστικό μπλοκ.
Οποιοσδήποτε κώδικας μπορεί να προκαλέσει σφάλματα θα πρέπει να τοποθετηθεί μέσα στο δοκιμαστικό μπλοκ. Ο πιο επικίνδυνος κώδικας συνήθως περιλαμβάνει πράγματα που ο προγραμματιστής δεν μπορεί να ελέγξει άμεσα: πρόσβαση σε εξωτερικά αρχεία, εργασίες σε δεδομένα που ορίζονται από το χρήστη ή έκθεση σε εξωτερικά προγράμματα και διαδικασίες.
-
Χρησιμοποιήστε τη ρήτρα σύλληψης για να προβλέψετε τα σφάλματα.
Η ρήτρα σύλληψης δείχνει το τέλος του επικίνδυνου κωδικού.
-
Υποδείξτε τον τύπο εξαίρεσης.
Η παράμετρος για τη ρήτρα σύλληψης είναι ένα αντικείμενο τύπου Exception. Η PHP έχει αρκετές ενσωματωμένες εξαιρέσεις και συχνά μια βιβλιοθήκη ή εργαλειοθήκη θα περιλαμβάνει νέες εξαιρέσεις (μπορείτε επίσης να τις δημιουργήσετε μόνοι σας, αν θέλετε).
-
Διαχειριστείτε την εξαίρεση.
Η ρήτρα αλίευσης ανοίγει ένα άλλο μπλοκ κώδικα. Βάλτε τον κώδικα εδώ, ο οποίος θα λύσει το πρόβλημα (ή τουλάχιστον θα πεθάνει με λίγο στυλ και χάρη - ενημερώνοντας το χρήστη για το τι πήγε στραβά πριν ανακατέψει αυτό το θνητό πηνίο). Η πιο κοινή γραμμή εδώ είναι να καλέσετε την εκτύπωση ($ e-> getMessage ()). Όλα τα αντικείμενα εξαίρεσης έχουν τη μέθοδο getMessage () και αυτή η γραμμή αναφέρει το τρέχον μήνυμα λάθους.
Γνωρίζοντας πότε να παγιδεύσετε για εξαιρέσεις
Εάν ο διακομιστής σας είναι ρυθμισμένος για σφάλμα (όπως το XAMPP είναι από προεπιλογή), συνήθως δεν θα είναι απαραίτητο να ρυθμίσετε τον χειρισμό εξαιρέσεων επειδή η προεπιλεγμένη συμπεριφορά μιας ρύθμισης εντοπισμού σφαλμάτων είναι αναφέρετε τις εξαιρέσεις ούτως ή άλλως.Υπάρχουν κάποιες φορές που θέλετε να κάνετε ρητό χειρισμό εξαιρέσεων:
-
Βρίσκεστε σε διακομιστή χωρίς ρυθμίσεις εντοπισμού σφαλμάτων: Ενδέχεται να μην έχετε πρόσβαση στη διαμόρφωση του διακομιστή, επομένως ίσως να μην μπορείτε να ενεργοποιήσετε την αυτόματη εκθέσεις εξαίρεσης. Οι αναφορές χειροκίνητων εξαιρέσεων εξακολουθούν
-
Θέλετε να κάνετε κάτι ξεχωριστό: Ο χειριστής αυτόματης εξαίρεσης αναφέρει απλώς το πρόβλημα. Εάν θέλετε να κάνετε κάτι άλλο (για παράδειγμα, χρησιμοποιήστε ένα προεπιλεγμένο αρχείο εάν δεν βρεθεί ένα αρχείο), θα χρειαστείτε ένα χειριστή εξειδικευμένων εξαιρέσεων για αυτήν την κατάσταση.
-
Κάνετε κάτι εξωτικό: Οι ειδικές βιβλιοθήκες έρχονται συχνά με τις δικές τους εξατομικευμένες εξαιρέσεις και θα χρειαστείτε έναν χειριστή εξαιρέσεων για να καλύψετε αυτές τις καταστάσεις.