Sobes.tech
Junior — Middle

Каква е разликата между класовете Error и Exception в контекста на обработката на грешки?

sobes.tech AI

Отговор от AI

В iOS (Swift) Error е протокол, който трябва да реализират типовете, описващи грешки, които могат да бъдат хвърлени и обработени. Exception като отделен тип в Swift не съществува, но в други езици (например Objective-C) изключенията (NSException) се използват за критични грешки, които обикновено не се обработват чрез обичайния механизъм try-catch.

В Swift се препоръчва да се използва Error и обработка чрез do-try-catch за контролирани грешки, а не изключения, предназначени за непредвидени сривове.

Пример за обработка на грешка в Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Файлът не е намерен")
} catch {
    print("Друга грешка")
}