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("Այլ սխալ")
}