أساسيات 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
التحدي
سهلقم بإنشاء طريقة تسمى divideNumbers تأخذ ثلاث وسائط:
- سلسلة نصية (
num1) تمثل الرقم الأول - سلسلة نصية (
num2) تمثل الرقم الثاني - عدد صحيح (
index) يمثل فهرس المصفوفة
يجب أن تقوم الطريقة بما يلي:
- إنشاء مصفوفة بحجم 2
- تخزين القيمة الصحيحة المحولة لـ num1 مقسومة على القيمة الصحيحة المحولة لـ num2 في الفهرس المعطى
- إرجاع القيمة الموجودة في الفهرس المعطى
- معالجة جميع الاستثناءات الممكنة، وإرجاع رسالة الخطأ المقابلة بدلاً من ذلك
يجب أن تكون رسائل الإرجاع:
- بالنسبة لـ
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));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم