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

أساسيات Try-Catch

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 40 من 59.

تُستخدم كتل Try-catch في Java للتعامل مع الاستثناءات (الأخطاء) التي قد تحدث أثناء تنفيذ البرنامج. يوضع الكود الذي قد يتسبب في استثناء داخل كتلة try، بينما يوضع كود معالجة الأخطاء داخل كتلة catch.

إليك الهيكل الأساسي لكتلة try-catch:

try {
   // الكود الذي قد يتسبب في استثناء
} catch (ExceptionType e) {
   // الكود للتعامل مع الاستثناء
}

لنرى ذلك عملياً مع Integer.parseInt()، والذي يقوم بتحويل String إلى عدد صحيح (integer):

String text = "abc";
try {
   int number = Integer.parseInt(text);
   System.out.println(number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
}

بعد تنفيذ الكود أعلاه، يكون الناتج هو:

Error: Not a valid number

challenge icon

التحدي

سهل

قم بإنشاء طريقة تسمى divideNumbers تأخذ ثلاث وسائط:

  1. سلسلة نصية (num1) تمثل الرقم الأول
  2. سلسلة نصية (num2) تمثل الرقم الثاني
  3. عدد صحيح (index) يمثل فهرس المصفوفة

يجب أن تقوم الطريقة بما يلي:

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

يجب أن تكون رسائل الإرجاع:

  • بالنسبة لـ NumberFormatException: "Error: Invalid number format"
  • بالنسبة لـ ArithmeticException: "Error: Division by zero"
  • بالنسبة لـ ArrayIndexOutOfBoundsException: "Error: Invalid array index"
  • للعملية الناجحة: إرجاع النتيجة كسلسلة نصية

جرّب بنفسك

import java.util.Scanner;

public class Main {
    public static String divideNumbers(String num1, String num2, int index) {
        // اكتب كودك هنا
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String num1 = scanner.nextLine();
        String num2 = scanner.nextLine();
        int index = Integer.parseInt(scanner.nextLine());
        
        System.out.println(divideNumbers(num1, num2, index));
    }
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow