0Pricing
Swift Academy · درس

معالجة الأخطاء

معالجة الأخطاء

معالجة الأخطاء درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 1. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 1 دروس في المجموع.

مقدمة

مرحبًا،

أثناء تشغيل التطبيق، قد تحدث بعض الأخطاء اعتمادًا على شيفرة تطبيقنا، مثل أخطاء المنطق، أو اعتمادًا على البيئة التي يعمل فيها التطبيق.

يمكن استخدام معالجة الأخطاء أثناء تحديد الأخطاء التي تحدث والتحكم فيها.

أنواع الأخطاء

بعد حدوث خطأ، يمكن لمعالجة الأخطاء منع تعطل تدفق التطبيق، أو تسجيل الأخطاء، أو إغلاق التطبيق في بعض الحالات، عندما يتعذر تشغيله.

قد تنتج بعض الأخطاء عن أخطاء منطقية في شيفرة مطوري البرمجيات. فعلى سبيل المثال، سيطرح التطبيق خطأً عندما نستخدم force unwrap مع قيمة اختيارية، كما تعلمنا في القسم السابق.

في بعض الحالات، قد تحدث الأخطاء بشكل مستقل عن المطور. فعلى سبيل المثال، إذا لم تتوفر مساحة على القرص في الجهاز الذي يعمل عليه التطبيق، فسيحدث خطأ في تطبيقنا أيضًا.

enum للأخطاء المخصصة

يمكننا تعريف أخطاء مخصصة ستحدث باستخدام enum بأنفسنا. في المثال أدناه، أُضيفت أنواع الأخطاء التي قد تحدث عند إدخال معلومات بطاقة الائتمان باسم CreditCardError.

enum CreditCardError: Error {
    case insufficientFunds
    case issuerDeclined
    case invalidCVC
}

الكلمة المفتاحية throws

إذا كانت إحدى الطرق التي كتبناها قادرة على إنشاء خطأ، فتُضاف الكلمة المفتاحية throws إلى تعريف الطريقة.

فيما يلي مثال على الصياغة.

func processPayment(creditcard: String) throws {
}

الكلمة المفتاحية throw

أحيانًا، أثناء كتابة الشيفرة، قد يحتاج مطور البرمجيات إلى طرح الخطأ.

لنتخيل أننا نكتب نظام دفع في أحد البنوك. 

ولنفترض أن رصيد العميل غير كافٍ عند الدفع ببطاقة الائتمان. في هذه الحالة، يمكننا طرح خطأ يفيد بأن الرصيد غير كافٍ.

throw CreditCardError.insufficientFunds

كتلة do-catch

كتلة do-catch

عندما نريد استخدام طرق قد تتسبب في حدوث أخطاء في تطبيقنا، يمكننا التقاط الأخطاء المحتملة بوضع هذه الشيفرات داخل كتل do-catch.

توجد الشيفرات التي قد تتسبب في حدوث أخطاء داخل كتلة do، بينما ستُلتقط الأخطاء المحتملة داخل كتلة catch.

لنلقِ نظرة على المثال أدناه

do {
   //Code block that may throw an Error
}
catch let error {
    print(error)
}

صياغة try

باستثناء الكلمة المفتاحية try، لدينا استخداما try! وtry؟. 

لنلقِ نظرة على مثالنا.

// if an error was thrown, app will crash
let result = try! doSomething() 


if let result = try? make() {
    //If the make method is successful, the result is unwrap. It is a very elegant use.
} else {
    //make() threw an error.
}

كتل catch متعددة

إذا كانت الطريقة التي نستدعيها قادرة على طرح أخطاء متعددة، فيمكننا تصفية تدفق تطبيقنا وتوجيهه وفقًا لنوع الخطأ.

في المثال أدناه، تتعامل كل كتلة catch مع أخطاء مختلفة قد تحدث.

do {
    try doSomething()
} catch CustomError.errorOne {
  //handle errorOne Error
} catch CustomError.errorTwo(let customErr) {
   //handle errorTwo Error with customErr
}

تهانينا

تهانينا 🎉

تعلّمنا في هذا الدرس كيفية التعامل مع أخطاء التطبيقات باستخدام Swift.

نراكم في الدرس التالي.

معالجة الأخطاء — رسم توضيحي 9

الأسئلة الشائعة

هل درس «معالجة الأخطاء» مجاني؟

نعم — نص درس «معالجة الأخطاء» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 1 دروس في المجموع.

ماذا ستتعلم في «معالجة الأخطاء»؟

معالجة الأخطاء تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 1.

كم من الوقت يستغرق درس «معالجة الأخطاء»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

← العودة إلى Swift Academy