تعريف الأخطاء
enum LoginError: Error {
case emptyPassword
case wrongCredentials
}
دالة قد ترمي خطأ (throws)
func login(_ password: String) throws {
if password.isEmpty {
throw LoginError.emptyPassword
}
print("تسجيل دخول ناجح")
}
do / try / catch
do {
try login("")
} catch LoginError.emptyPassword {
print("كلمة المرور فارغة")
} catch {
print("خطأ: \(error)")
}
try? و try!
let result = try? login("123") // nil عند الخطأ بدل رميه
// let forced = try! login("123") // يتعطّل عند الخطأ — بحذر
defer للتنظيف
func process() {
defer { print("تنظيف") } // يُنفَّذ عند الخروج دائمًا
print("معالجة")
}
🎯 التالي: إدارة الذاكرة (ARC).