Sobes.tech
Junior — Middle

Wat is het verschil tussen de klassen Error en Exception in de context van foutafhandeling?

sobes.tech AI

Antwoord van AI

In iOS (Swift) is Error een protocol dat door typen moet worden geïmplementeerd die fouten beschrijven die kunnen worden gegooid en afgehandeld. Exception als een apart type bestaat niet in Swift, maar in andere talen (bijvoorbeeld Objective-C) worden uitzonderingen (NSException) gebruikt voor kritieke fouten die meestal niet via het gebruikelijke try-catch mechanisme worden afgehandeld.

In Swift wordt aanbevolen om Error te gebruiken en afhandeling via do-try-catch voor gecontroleerde fouten, in plaats van uitzonderingen die bedoeld zijn voor onvoorziene storingen.

Voorbeeld van foutafhandeling in Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Bestand niet gevonden")
} catch {
    print("Andere fout")
}