Middle
Ποιοι τρόποι υπάρχουν για την επεξεργασία των ελεγχόμενων εξαιρέσεων;
sobes.tech AI
Απάντηση από AI
- Χρησιμοποιήστε το μπλοκ
try-catch: επιτρέπει την πιάσιμο και επεξεργασία μιας εξαίρεσης, αποτρέποντας την αιφνίδια διακοπή του προγράμματος. - Δηλώστε ότι μια μέθοδος ρίχνει μια εξαίρεση, χρησιμοποιώντας τη λέξη-κλειδί
throwsστη υπογραφή της μεθόδου: αυτό μεταφέρει την ευθύνη για την επεξεργασία στον κώδικα που την καλεί. - Τυλίξτε μια ελεγχόμενη εξαίρεση σε μια μη ελεγχόμενη: επιτρέπει την προώθηση της εξαίρεσης χωρίς ρητή επεξεργασία, αλλά μπορεί να κρύψει ένα πραγματικό πρόβλημα.
Παράδειγμα χρήσης try-catch:
// Παράδειγμα χρήσης try-catch για την επεξεργασία μιας ελεγχόμενης εξαίρεσης
try {
// Κώδικας που μπορεί να ρίξει μια ελεγχόμενη εξαίρεση (π.χ., IOException)
FileReader file = new FileReader("my_file.txt");
// Εργασία με το αρχείο...
} catch (IOException e) {
// Επεξεργασία IOException
e.printStackTrace(); // Εμφάνιση της στοίβας κλήσεων για αποσφαλμάτωση
System.err.println("Σφάλμα κατά την εργασία με το αρχείο: " + e.getMessage());
}
Παράδειγμα χρήσης throws:
// Παράδειγμα χρήσης `throws` στη υπογραφή της μεθόδου
public void readFile(String fileName) throws IOException {
FileReader file = new FileReader(fileName);
// Εργασία με το αρχείο...
}
// Ο κώδικας που καλεί πρέπει να χειριστεί την IOException ή να την δηλώσει στη δική του υπογραφή
public void processFile(String filePath) {
try {
readFile(filePath);
} catch (IOException e) {
System.err.println("Σφάλμα κατά την ανάγνωση του αρχείου: " + e.getMessage());
}
}
Παράδειγμα τυλίγματος σε μια μη ελεγχόμενη εξαίρεση:
// Παράδειγμα τυλίγματος μιας ελεγχόμενης εξαίρεσης σε μια μη ελεγχόμενη
public void unsafeOperation() {
try {
// Κώδικας που μπορεί να ρίξει μια ελεγχόμενη εξαίρεση
throw new IOException("Παράδειγμα IOException")
} catch (IOException e) {
// Μετατροπή της ελεγχόμενης σε μη ελεγχόμενη
throw new RuntimeException("Εντοπίστηκε σφάλμα στην λειτουργία", e);
}
}