Swift xatolarni qayta ishlash


ULASHISH

Swift xatolarni qayta ishlash

Xatolarni aniq tashlang (throw) va ushlang (catch) yoki kerak bo‘lganda try? yordamida muvaffaqiyatsizliklarni optional qiymatlarga aylantiring.


Throw, try, catch

Funksiyalar throw yordamida xatolarni tashlashi (throw) mumkin.

Chaqiruvchi kod try dan foydalanishi va muvaffaqiyatsizliklarni do/catch bilan qayta ishlashi yoki optional natija olish uchun try? dan foydalanishi kerak.

Sintaksis:

  • func f() throws -> T
  • try f()
  • try? f()
  • do { ... } catch { ... }

Misol

enum InputError: Error { case negative }

func validate(_ n: Int) throws -> String {
  if n < 0 { throw InputError.negative }
  return "ok: \(n)"
}

do {
  let result = try validate(-1)
  print(result)
} catch {
  print("error")
}

let maybe = try? validate(1)
print(maybe ?? "nil")

O‘zingiz sinab ko‘ring »

Maslahat: Xatolar tashlanganda ham joriy ko‘rinish sohasidan (scope) chiqishdan oldin tozalash kodini bajarish uchun defer dan foydalaning.



Defer (tozalash)

Xato tashlangan taqdirda ham ko‘rinish sohasidan chiqilganda tozalash kodi har doim bajarilishini ta’minlash uchun defer dan foydalaning.

Misol

enum FileError: Error { case fail }

func work(_ ok: Bool) throws {
  print("start")
  defer { print("cleanup") }
  if !ok { throw FileError.fail }
  print("done")
}

do { try work(false) } catch { print("error") }

O‘zingiz sinab ko‘ring »

Ushbu misol xato tashlanganda ham "cleanup" matnini chiqaradi va resurslar tozalanishini kafolatlaydi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!