Sobes.tech
Junior — Middle

V čem spočívá rozdíl mezi třídami Error a Exception v kontextu zpracování chyb?

sobes.tech AI

Odpověď od AI

V iOS (Swift) je Error protokol, který musí implementovat typy popisující chyby, které mohou být vyvolány a zpracovány. Exception jako samostatný typ v Swiftu neexistuje, ale v jiných jazycích (například Objective-C) jsou výjimky (NSException) používány pro kritické chyby, které se obvykle nezpracovávají běžným mechanismem try-catch`.

V Swiftu se doporučuje používat Error a zpracování pomocí do-try-catch pro řízené chyby, nikoli výjimky, které jsou určeny pro neočekávané selhání.

Příklad zpracování chyby ve Swiftu:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Soubor nenalezen")
} catch {
    print("Jiná chyba")
}