By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: الدرس 16: شرح عبارات try & catch في لغة دارت (Dart)
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

2
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

9
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

17
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Dart > الدرس 16: شرح عبارات try & catch في لغة دارت (Dart)
Dart

الدرس 16: شرح عبارات try & catch في لغة دارت (Dart)

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 5 دقيقة للقراءة 2976 مشاهدات 4
شارك
شرح عبارات try & catch في لغة دارت (Dart)
شرح عبارات try & catch في لغة دارت (Dart)
شارك

خدماتنا البرمجية – عرب فلاتر🚀

خدماتنا البرمجية – عرب فلاتر

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

المحتويات
مفهوم التعامل مع الاستثناءات في دارتبناء جملة try و catch للتعامل مع الأخطاءمثال على التعامل مع الاستثناءاتظهور استثناءات بشكل صريحاستثناءات مخصصة في دارت

مفهوم التعامل مع الاستثناءات في دارت

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

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

دعنا نستكشف طريقة بناء الجملة وأمثلة على التعامل مع الاستثناءات في دارت.


بناء جملة try و catch للتعامل مع الأخطاء

بناء جملة try و catch للتعامل مع الاستثناءات في دارت هو كما يلي:

try {
  // الأكوادالتي قد تثير ظهور استثناءً
} catch (exception) {
  // التعامل مع الاستثناء
} finally {
  // الأكواد التي تنفذ دائمًا، بغض النظر عن حدوث استثناء
}

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


مثال على التعامل مع الاستثناءات

لنأخذ مثالًا حيث نقسم رقمين ونتعامل مع IntegerDivisionByZeroException التي قد تحدث إذا كان المقسوم صفرًا:

void main() {
  int dividend = 10;
  int divisor = 0;
  int quotient;

  try {
    quotient = dividend ~/ divisor;
    print('الناتج: $quotient');
  } catch (exception) {
    print('خطأ: $exception');
  } finally {
    print('تنفيذ عبارة finally دائمًا');
  }
}

في هذا المثال، تحتوي عبارة try على عملية القسم dividend ~/ divisor. إذا كان المقسوم divisor يساوي الصفر، فسيظهر استثناء IntegerDivisionByZeroException. تقوم عبارة catch بالقبض على الاستثناء وتطبع رسالة الاستثناء. أخيرًا، يتم تنفيذ عبارة finally ويتم طباعة الرسالة ‘تنفيذ عبارة finally دائمًا’.

الناتج:

خطأ: IntegerDivisionByZeroException
تنفيذ عبارة finally دائمًا

ظهور استثناءات بشكل صريح

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

void checkAccountBalance(int balance) {
  if (balance < 0) {
    throw Exception('لا يمكن أن يكون رصيد الحساب سالبًا');
  }
}

void main() {
  try {
    checkAccountBalance(-100);
  } catch (exception) {
    print('خطأ: $exception');
  }
}

في هذا المثال، تقوم وظيفة checkAccountBalance برمي استثناء عام Exception مع رسالة خطأ مخصصة إذا كان الرصيد سالبًا. تقوم كتلة catch بالقبض على الاستثناء وتطبع رسالة الاستثناء.

الناتج:

خطأ: Exception: لا يمكن أن يكون رصيد الحساب سالبًا

استثناءات مخصصة في دارت

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

class CustomException implements Exception {
  final String message;

  CustomException(this.message);

  @override
  String toString() => 'استثناء مخصص: $message';
}

void main() {
  try {
    throw CustomException('هذا استثناء مخصص');
  } catch (exception) {
    print(exception);
  }
}

في هذا المثال، ننشئ class استثناء مخصصة CustomException التي تنفذ واجهة Exception. يأخذ الـ class معامل message في بنائها وتعيد كتابة دالةtoString لتوفير سلسلة نصية مخصص للاستثناء. ثم نقوم باستدعاء CustomException مع رسالة محددة ونقوم بالقبض عليه في عبارةcatch ونطبع الاستثناء.

الناتج:

استثناء مخصص: هذا استثناء مخصص

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

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

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح عبارات break & continue في لغة دارت (Dart) الدرس 15: شرح عبارات break & continue في لغة دارت (Dart)
المقال التالي شرح الدوال Functions في لغة دارت (Functions In Dart) الدرس 17: شرح الدوال في لغة دارت (Functions In Dart)
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

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

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح العوازل في لغة دارت (Isolates in Dart)
Dart

شرح العوازل في لغة دارت (Isolates in Dart)

8
شرح الـ Stream في لغة دارت (Stream in Dart)
Dart

الدرس 57: شرح الـ Stream في لغة دارت (Stream in Dart)

8
شرح عبارات async & await في لغة دارت (Dart)
Dart

الدرس 56: شرح عبارات async & await في لغة دارت (Dart)

6
شرح مفهوم الـ Future في لغة دارت (Future In Dart)
Dart

الدرس 55: شرح مفهوم الـ Future في لغة دارت (Future In Dart)

6
شرح مفهوم الـ Asynchronous في لغة دارت (Dart)
Dart

الدرس 54: شرح مفهوم الـ Asynchronous في لغة دارت (Dart)

5
10 تمارين محلولة على Null Safety في لغة دارت Dart
Dart

الدرس 53: 10 تمارين محلولة على Null Safety في لغة دارت Dart

5
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟