البرمجة

تعامل مع الأخطاء في Swift 3

عند الترقية إلى Swift 3 وما بعدها، تم تعزيز نظام التعامل مع الأخطاء والاستثناءات ليصبح أكثر قوة ومرونة من خلال استخدام كلمات مفتاحية جديدة مثل do وtry وcatch. بدلاً من استخدام guard لفحص الأخطاء، يمكنك الآن استخدام تنسيق الـdo-try-catch للتعامل مع الأخطاء.

لنقم بتحويل الشيفرة التي قمت بتقديمها إلى تنسيق الـdo-try-catch:

swift
do { let data = try Data(contentsOf: url) // قم بمعالجة البيانات هنا } catch { print("حدث خطأ: \(error)") return }

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

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

المزيد من المعلومات

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

في سياق الشفرة التي قدمتها، كانت تستخدم guard للتحقق من توافر البيانات قبل معالجتها. بعد التحديث، يتم استبدال ذلك بتنسيق الـdo-try-catch كما تم شرحه في الشفرة السابقة.

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

على سبيل المثال، إذا كان لدينا الكود التالي قبل التحديث:

swift
guard let data = Data(contentsOf: url) else { print("حدث خطأ في جلب البيانات!") return }

سيتم تحويله إلى:

swift
do { let data = try Data(contentsOf: url) // قم بمعالجة البيانات هنا } catch { print("حدث خطأ: \(error)") return }

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

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر