Sobes.tech
Junior — Middle

Mi a különbség az Error és Exception osztályok között a hibakezelés kontextusában?

sobes.tech MI

Válasz az MI-től

iOS (Swift) rendszerben az Error egy protokoll, amelyet azoknak a típusoknak kell megvalósítaniuk, amelyek leírják azokat a hibákat, amelyeket dobni és kezelni lehet. Exception külön típusként Swiftben nem létezik, de más nyelvekben (pl. Objective-C) a kivételek (NSException) használatosak kritikus hibák esetén, amelyeket általában nem a szokásos try-catch mechanizmussal kezelnek.

Swiftben ajánlott az Error használata és a do-try-catch szerinti kezelés kontrollált hibák esetén, nem pedig kivételek, amelyek váratlan hibákra vannak fenntartva.

Hiba kezelés példája Swiftben:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Fájl nem található")
} catch {
    print("Más hiba")
}