Sobes.tech
Back to questions
Junior — Middle
78

Чем отличаются классы Error и Exception в контексте обработки ошибок?

Answer from AI

sobes.tech 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("Другая ошибка")
}