Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

كتلة 'try-catch'

جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 39 من 65.

الآن بعد أن فهمت ما هي الاستثناءات، دعنا نتعلم كيفية التعامل معها بسلاسة باستخدام كتلة try-catch. هذه هي الأداة الأساسية التي تمنع برنامجك من الانهيار عندما يحدث خطأ ما.

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

try {
  // كود قد يتسبب في حدوث استثناء
  int number = int.parse("abc");
} catch (e) {
  // كود يتم تنفيذه في حالة حدوث استثناء
  print("Something went wrong: $e");
}

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

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

challenge icon

التحدي

سهل

قم بإنشاء برنامج يقوم بتحويل سلاسل إدخال المستخدم إلى أرقام بأمان باستخدام كتلة try-catch. يجب أن يتعامل برنامجك مع الحالات التي قد لا يكون فيها الإدخال رقماً صالحاً ويمنع البرنامج من الانهيار.

  1. اقرأ إدخالاً نصياً يمثل رقماً يحتاج إلى تحويله إلى عدد صحيح (integer)
  2. استخدم كتلة try-catch لمحاولة التحويل بأمان باستخدام int.parse()
  3. إذا نجح التحويل، فقم بحساب مربع الرقم (اضربه في نفسه)
  4. إذا فشل التحويل وحدث استثناء، فقم بمعالجة الخطأ بلباقة
  5. اعرض النتيجة المناسبة أو رسالة الخطأ بالتنسيق الدقيق الموضح أدناه

على سبيل المثال، إذا كان الإدخال "5"، يجب أن يخرج برنامجك:

Processing input: 5
Conversion successful!
The square of 5 is: 25

إذا كان الإدخال "abc"، يجب أن يخرج برنامجك:

Processing input: abc
Error: Cannot convert 'abc' to a number
Please enter a valid integer

إذا كان الإدخال "12"، يجب أن يخرج برنامجك:

Processing input: 12
Conversion successful!
The square of 12 is: 144

يجب أن يستخدم برنامجك كتلة try-catch لتغليف عملية int.parse(). في قسم try، حاول تحويل سلسلة الإدخال إلى عدد صحيح واحسب مربعه. في قسم catch، قم بمعالجة أي استثناء يحدث أثناء التحويل واعرض رسالة خطأ مناسبة. يجب أن يستمر البرنامج في العمل بشكل طبيعي بغض النظر عما إذا كان التحويل قد نجح أم فشل.

ورقة مرجعية

استخدم كتل try-catch لمعالجة الاستثناءات بشكل سلس ومنع تعطل البرنامج:

try {
  // الكود الذي قد يتسبب في حدوث استثناء
  int number = int.parse("abc");
} catch (e) {
  // الكود الذي يتم تشغيله في حالة حدوث استثناء
  print("Something went wrong: $e");
}

تحتوي كتلة try على الكود الذي قد يسبب مشاكل، بينما تعالج كتلة catch أي استثناءات تحدث. يحتوي المتغير e على معلومات حول الاستثناء.

جرّب بنفسك

import 'dart:io';

void main() {
  // قراءة نص الإدخال
  String? input = stdin.readLineSync();
  
  // عرض رسالة المعالجة
  print('Processing input: $input');
  
  // TODO: اكتب الكود الخاص بك أدناه
  // استخدم كتلة try-catch لتحويل الإدخال إلى عدد صحيح بأمان
  // احسب المربع إذا كان التحويل ناجحاً
  // تعامل مع أي استثناءات تحدث أثناء التحويل
  
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow