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("Άλλο σφάλμα")
}