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")
}