Το Android δεν διαθέτει ένα μοναδικό σύνολο εξαιρέσεων * συγκεκριμένο * στην ίδια την πλατφόρμα Android, αλλά χρησιμοποιεί τις εξαιρέσεις Java και εισάγει κάποιες συνηθισμένες καταστάσεις στο περιβάλλον Android. Αυτά μπορούν να κατηγοριοποιηθούν ευρέως ως:
1. Κοινές εξαιρέσεις Java: Πολλές τυποποιημένες εξαιρέσεις Java είναι επίσης σχετικές με την ανάπτυξη του Android:
* `nullpointerexception` (npe): Η πιο συνηθισμένη εξαίρεση. Εμφανίζεται όταν προσπαθείτε να αποκτήσετε πρόσβαση σε ένα μέλος (μέθοδο ή πεδίο) ενός αντικειμένου που είναι σήμερα «null».
* `indexoutofboundsexception`: Που ρίχνονται όταν προσπαθείτε να αποκτήσετε πρόσβαση σε ένα στοιχείο πίνακα ή λίστα χρησιμοποιώντας ένα δείκτη που είναι εκτός ορίων (π.χ. προσπαθώντας να αποκτήσετε πρόσβαση στο 10ο στοιχείο ενός πίνακα 5 στοιχείων).
* `παράνομοAlargumentException`: Που ρίχνεται όταν μια μέθοδος λαμβάνει ένα επιχείρημα ότι δεν έχει σχεδιαστεί για να χειρίζεται.
* `παράνομη κατάσταση): Που ρίχνεται όταν μια μέθοδος καλείται σε ακατάλληλο χρόνο στον κύκλο ζωής ενός αντικειμένου.
* `classcastexception`: Που ρίχνονται όταν προσπαθείτε να ρίξετε ένα αντικείμενο σε έναν τύπο που δεν είναι συμβατό.
* `arithmeticexception`: Εμφανίζεται κατά τη διάρκεια των αριθμητικών λειτουργιών, όπως η διαίρεση με μηδέν.
* `ioexception`: Εμφανίζεται κατά τη διάρκεια λειτουργιών εισόδου/εξόδου (π.χ. ανάγνωση από ένα αρχείο ή δίκτυο).
* `RuntimeException`: Η κατηγορία βάσης για πολλές μη ελεγχόμενες εξαιρέσεις (εξαιρέσεις που δεν χρειάζεται να αντιμετωπίζονται ρητά στον κώδικα). `Nullpointerexception` και` indexoutofboundsexception` είναι παραδείγματα.
2. Εξαιρέσεις ειδικών για το Android (ή καταστάσεις που οδηγούν σε κοινές εξαιρέσεις): Αν και δεν είναι ξεχωριστή εξαίρεση *τάξεις *, αυτά είναι κοινά σενάρια σφάλματος στην ανάπτυξη Android:
* Θέματα δικτύου: Οι εξαιρέσεις που σχετίζονται με τα προβλήματα συνδεσιμότητας του δικτύου συχνά εκδηλώνονται ως «ioexception» ή υποκατηγορίες (π.χ., «sockettimeoutexception», `unknownhostexception»).
* Θέματα δικαιωμάτων: Εάν η εφαρμογή σας προσπαθεί να αποκτήσει πρόσβαση σε έναν πόρο (όπως η κάμερα ή η τοποθεσία) χωρίς τα απαραίτητα δικαιώματα, μπορεί να οδηγήσει σε «SecurityException» ή στη λειτουργία απλά αποτυγχάνει σιωπηλά.
* Θέματα πόρων: Προσπαθώντας να αποκτήσετε πρόσβαση σε πόρους που δεν υπάρχουν (π.χ. αρχείο διάταξης ή σχεδίου) μπορεί να οδηγήσει σε `resources.notfoundexception '.
* Θέματα συγχώρεσης: Προβλήματα που σχετίζονται με το multi-threading (π.χ. συνθήκες φυλής, αδιεξόδου) συχνά εκδηλώνονται ως «παράνομη διαταραχή» ή άλλη απροσδόκητη συμπεριφορά.
* Θέματα ζωής: Οι μεθόδους κλήσης σε μια δραστηριότητα ή άλλο στοιχείο σε λάθος σημείο του κύκλου ζωής του μπορούν να οδηγήσουν σε «παράνομη κατάσταση).
* Θέματα βάσης δεδομένων: Τα σφάλματα που αλληλεπιδρούν με βάσεις δεδομένων (όπως το SQLite) μπορούν να οδηγήσουν σε «sqlexception».
* Χαμηλή μνήμη: Όταν το σύστημα είναι χαμηλό στη μνήμη, μπορεί να οδηγήσει σε συντριβές, συχνά έμμεσα μέσω ενός `outofmemoryerror '(αν και τεχνικά όχι εξαίρεση με τον ίδιο τρόπο όπως και άλλοι).
Εξαιρέσεις χειρισμού:
Το Android, όπως και η Java, χρησιμοποιεί μπλοκ `try-catch` για να χειριστεί εξαιρέσεις:
`` `java
Δοκιμάστε {
// κωδικός που μπορεί να ρίξει μια εξαίρεση
int αποτέλεσμα =10/0; // Αυτό θα προκαλέσει μια αριθμητική σύλληψη
} catch (arithmeticexception e) {
// χειριστείτε την Arithmeticexception
Log.e ("myapp", "τμήμα με μηδέν!", E);
} catch (Εξαίρεση e) {// Πιάσε οποιαδήποτε άλλη εξαίρεση
Log.e ("myapp", "Παρουσιάστηκε σφάλμα:" + e.getMessage (), e);
} Τέλος {
// Ο κωδικός που εκτελεί πάντα, ανεξάρτητα από το αν συνέβη μια εξαίρεση. (π.χ. πόροι κλεισίματος)
}
`` `
Θυμηθείτε να χειρίζεστε τις εξαιρέσεις κατάλληλα για να εμποδίσετε τη συντριβή της εφαρμογής σας και να δώσετε καλύτερη εμπειρία χρήστη. Ο σωστός χειρισμός σφαλμάτων είναι ζωτικής σημασίας για την ισχυρή ανάπτυξη εφαρμογών Android.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα