Sobes.tech
Junior — Middle

Care este diferența dintre clasele Error și Exception în contextul gestionării erorilor?

sobes.tech AI

Răspuns de la AI

În iOS (Swift), Error este un protocol pe care trebuie să îl implementeze tipurile care descriu erori ce pot fi aruncate și gestionate. Exception ca tip separat nu există în Swift, dar în alte limbaje (de exemplu, Objective-C), excepțiile (NSException) sunt folosite pentru erori critice, care de obicei nu sunt gestionate prin mecanismul obișnuit try-catch.

În Swift, se recomandă utilizarea Error și gestionarea prin do-try-catch pentru erori controlate, și nu excepții, care sunt destinate eșecurilor neașteptate.

Exemplu de gestionare a erorilor în Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Fișierul nu a fost găsit")
} catch {
    print("Altă eroare")
}