Junior — Middle
Czym różnią się klasy Error i Exception w kontekście obsługi błędów?
sobes.tech AI
Odpowiedź od AI
W iOS (Swift) Error jest protokołem, który muszą implementować typy opisujące błędy, które mogą być rzucane i obsługiwane. Exception jako odrębny typ nie istnieje w Swift, ale w innych językach (np. Objective-C) wyjątki (NSException) są używane do krytycznych błędów, które zazwyczaj nie są obsługiwane przez zwykły mechanizm try-catch.
W Swift zaleca się używanie Error i obsługę przez do-try-catch dla kontrolowanych błędów, a nie wyjątków, które są przeznaczone na nieprzewidziane awarie.
Przykład obsługi błędu w Swift:
enum FileError: Error {
case fileNotFound
case unreadable
}
func readFile() throws {
throw FileError.fileNotFound
}
do {
try readFile()
} catch FileError.fileNotFound {
print("Nie znaleziono pliku")
} catch {
print("Inny błąd")
}