Sobes.tech
Junior — Middle

Kuo skiriasi Error ir Exception klasės klaidų tvarkymo kontekste?

sobes.tech AI

Atsakymas iš AI

iOS (Swift) sistemoje Error yra protokolas, kurį turi įgyvendinti tipai, aprašantys klaidas, kurios gali būti išmestos ir apdorotos. Exception kaip atskiras tipas Swift nėra, tačiau kituose kalbose (pvz., Objective-C) išimtys (NSException) naudojamos kritinėms klaidoms, kurios paprastai nėra apdorojamos per įprastą try-catch mechanizmą.

Swift rekomenduojama naudoti Error ir apdoroti per do-try-catch kontrolėms, o ne išimtimis, kurios skirtos nenumatytiems gedimams.

Klaidos apdorojimo pavyzdys Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Failas nerastas")
} catch {
    print("Kita klaida")
}