Sobes.tech
Junior — Middle

Qual è la differenza tra le classi Error e Exception nel contesto della gestione degli errori?

sobes.tech AI

Risposta dell'AI

In iOS (Swift), Error è un protocollo che devono implementare i tipi che descrivono errori che possono essere sollevati e gestiti. Exception come tipo separato non esiste in Swift, ma in altri linguaggi (ad esempio Objective-C) le eccezioni (NSException) sono usate per errori critici che di solito non vengono gestiti tramite il meccanismo normale di try-catch.

In Swift, si consiglia di usare Error e la gestione tramite do-try-catch per errori controllati, e non le eccezioni, che sono destinate a fallimenti imprevisti.

Esempio di gestione degli errori in Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("File non trovato")
} catch {
    print("Altro errore")
}