Sobes.tech
Junior — Middle

V čom spočíva rozdiel medzi triedami Error a Exception v kontexte spracovania chýb?

sobes.tech AI

Odpoveď od AI

V iOS (Swift) je Error protokol, ktorý musia implementovať typy opisujúce chyby, ktoré môžu byť vyhodené a spracované. Exception ako samostatný typ v Swift nie je, ale v iných jazykoch (napríklad Objective-C) sa výnimky (NSException) používajú na kritické chyby, ktoré sa zvyčajne nespracovávajú bežným mechanizmom try-catch.

V Swift sa odporúča používať Error a spracovanie pomocou do-try-catch pre riadené chyby, nie výnimky určené na nepredvídané zlyhania.

Príklad spracovania chyby v Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Súbor sa nenašiel")
} catch {
    print("Iná chyba")
}