Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ των κλάσεων Error και Exception στο πλαίσιο της διαχείρισης σφαλμάτων;

sobes.tech AI

Απάντηση από AI

Στο iOS (Swift), το Error είναι ένα πρωτόκολλο που πρέπει να υλοποιούν οι τύποι που περιγράφουν σφάλματα που μπορούν να ριχτούν και να αντιμετωπιστούν. Το Exception ως ξεχωριστός τύπος δεν υπάρχει στο Swift, αλλά σε άλλες γλώσσες (π.χ., Objective-C), οι εξαιρέσεις (NSException) χρησιμοποιούνται για κρίσιμα σφάλματα που συνήθως δεν αντιμετωπίζονται μέσω του συνηθισμένου μηχανισμού try-catch.

Στο Swift, συνιστάται η χρήση του Error και η διαχείριση μέσω do-try-catch για ελεγχόμενα σφάλματα, και όχι εξαιρέσεις που προορίζονται για απρόβλεπτες αποτυχίες.

Παράδειγμα διαχείρισης σφάλματος στο Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Το αρχείο δεν βρέθηκε")
} catch {
    print("Άλλο σφάλμα")
}