Sobes.tech
Junior — Middle

Kādas ir atšķirības starp Error un Exception klasēm kļūdu apstrādes kontekstā?

sobes.tech AI

Atbilde no AI

iOS (Swift) sistēmā Error ir protokols, kuru jāievieš tipu, kas apraksta kļūdas, kuras var tikt izsviestas un apstrādātas. Exception kā atsevišķs tips Swift nav, bet citās valodās (piemēram, Objective-C) izņēmumi (NSException) tiek izmantoti kritiskiem kļūdām, kuras parasti netiek apstrādātas ar parasto try-catch mehānismu.

Swift ieteicams izmantot Error un apstrādāt ar do-try-catch kontroles mehānismu, nevis izņēmumus, kas paredzēti neparedzētiem kritieniem.

Kļūdu apstrādes piemērs Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Fails nav atrasts")
} catch {
    print("Cita kļūda")
}