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("სხვა შეცდომა")
}