Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να γράψετε τη δική Handler Εξαίρεση μου σε Java

Η γλώσσα Java παρέχει το μοντέλο εξαίρεσης, έτσι ώστε οι προγραμματιστές μπορούν να χειριστούν τις καταστάσεις στις οποίες η κανονική εκτέλεση του προγράμματος πάει στραβά . Υπάρχουν πολλοί τρόποι για ένα πρόγραμμα μπορεί να πάρει μια αναπάντεχη τροπή , αλλά μερικές γενικές τύποι δραστηριοτήτων είναι επιρρεπείς σε αυτές τις καταστάσεις , όπως η είσοδος /έξοδος , μεταποίηση, με πίνακες και ορισμένες αριθμητικές πράξεις . Έχοντας μια κατανόηση για το πώς να χειριστούμε τις εξαιρέσεις στα προγράμματα Java σας είναι μία από τις βασικές δεξιότητες που εμπλέκονται στο να γίνει προγραμματιστής . Οδηγίες
Η 1

Δημιουργία Java πρόγραμμά σας , χρησιμοποιώντας την ακόλουθη περίληψη ως τάξη σας και κύρια μέθοδος :

java.io. εισαγωγής * ?

Δημόσια τάξη ExceptionDemo {

δημόσια στατική άκυρη κύρια ( String [ ] args ) {

FileWriter fileOut = νέα FileWriter ( " outputfile.txt ")?

PrintWriter ΕΚΤΥΠΩΜΑΤΟΣ = νέα PrintWriter ( fileOut ) ?

printOut.println ( "Το κείμενο που εκτυπώνεται στο αρχείο" ) ?

printOut.close ( ) ?

fileOut.close ( ) ?

} }

Εάν επικολλήσετε αυτόν τον κώδικα σε ένα IDE ( Ολοκληρωμένο Περιβάλλον Ανάπτυξης) , που αναδεικνύει τα σφάλματα κώδικα , θα δείτε ότι δεν θα είναι καν σε θέση να συγκεντρώνει επειδή υπάρχει μια " εξαίρεση που δεν αντιμετωπίστηκε . " Η μέθοδος constructor FileWriter μπορεί να ρίξει μια εξαίρεση , για παράδειγμα, αν το αρχείο που έχετε καθορίσει δεν μπορεί να βρεθεί 2

Τοποθετήστε τον κώδικα με την εξαίρεση που δεν αντιμετωπίστηκε σε μια " δοκιμάσετε " μπλοκ ως εξής : .

try {

FileWriter fileOut = νέα FileWriter ( " outputfile.txt ")?

PrintWriter ΕΚΤΥΠΩΜΑΤΟΣ = νέα PrintWriter ( fileOut ) ?

printOut.println ( " κείμενο που εκτυπώνεται στο αρχείο " ) ?

printOut.close ( ) ?

fileOut.close ( ) ? }


Αυτό θα πρέπει να εμποδίζει την compiler από διαμαρτύρονται για τις γραμμές που προκαλούν unhandled σφάλματα εξαίρεσης , αλλά θα δημιουργήσει ένα νέο είδος του λάθους , επειδή η «προσπαθούν» δήλωση δεν έχει ακόμη ολοκληρωθεί . Η «προσπαθούν» δήλωση είναι βασικά ένα δοχείο για κώδικα που μπορεί να ρίξει μια εξαίρεση , αλλά πρέπει ακόμα να αναφέρει τι πρέπει να συμβεί εάν μια εξαίρεση είναι στην πραγματικότητα ρίχνονται .
Εικόνων 3

Τοποθετήστε ένα " πιάσει " δήλωση ως εξής ( μετά το κλείσιμο " προσπαθήσουν " παρένθεση):

αλιευμάτων ( IOException ΔΓΕ ) {

System.err.println ( " IOException έχει συμβεί : " + ioe.getMessage ( ) ) ?

}

Αυτό θα πρέπει να είναι αρκετό για να κρατήσει τον compiler ευτυχισμένη , και θα σας επιτρέψει να τρέξετε το πρόγραμμά σας . Ωστόσο , το μόνο που έχουν κάνει είναι να εμποδίζει το πρόγραμμα από τη συντριβή , εάν μια εξαίρεση σε αυτό το σημείο . Ανάλογα με τα στοιχεία της αίτησής σας , μπορεί να θέλετε να εισάγετε άλλο κωδικό εδώ για να αντανακλούν ό, τι είναι στη δική σας «προσπαθούν» μπλοκ , καθώς δεν θα έχουν εκτελεστεί εν λόγω κώδικα . Μόλις η είναι εξαίρεση , η εκτέλεση θα πήγαινε κατευθείαν στη «πιάσει» τον κωδικό .
Η 4

Προσθέστε επιπλέον χειριστές εξαίρεση. Ανάλογα με τη φύση του προγράμματός σας , μπορεί να είναι σκόπιμο να περιλαμβάνουν διαφορετικό κωδικό για συγκεκριμένους τύπους εξαίρεση. Για παράδειγμα , πριν από το « IOException " handler θα μπορούσαν να περιλαμβάνουν :

αλιευμάτων ( FileNotFoundException fnfe ) {

System.err.println ( " FileNotFoundException έχει συμβεί : " + fnfe.getMessage ( ) ) ?

}

Αυτό είναι ένα πιο συγκεκριμένο το είδος του λάθους από την IOException , οπότε αν η εξαίρεση που ρίχνονται δεν είναι FileNotFoundException , τον κωδικό σας θα πηδήσει στη γενικότερη χειριστή IOException αντ 'αυτού. Αλυσοποίηση χειριστές εξαιρέσεων, με αυτόν τον τρόπο σας επιτρέπει να υπαγορεύετε ακριβώς τι πρέπει να γίνει για κάθε τύπο σφάλματος .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα