فهرس المقرر
تقييم

تقييم الدرس 11: الاستثناءات Exceptions

إجاباتك تُحفظ تلقائيًّا على هذا الجهاز. أجب ثم اضغط «صحّح ورقتي» أسفل كل قسم.

trymyNumbers[10] ! catch (Exception e)

← العودة إلى الدرس 11: الاستثناءات Exceptions · أسئلة التقييم · أكمل الفراغات

أسئلة التقييم

أسئلة تقييم الدرس: الاستثناءات Exceptions. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ما فائدة الكتلة try؟
2) ما وظيفة الكتلة finally عند اضافاتها إلى الكتلة try and catch؟
3) ما نوع الاستثناء الذي يتم التعامل معه في الكود التالي
snippet
File data = new File("data.xls");        try {            Scanner scan = new Scanner(data);            System.out.println("Name\t\tMark");            while (scan.hasNextLine()) {                System.out.println(scan.nextLine());             }        } catch (FileNotFoundException ex) {            System.out.println(ex.getMessage());        }
4) ما نوع الاستثناء الذي يحدث عند محاولة فتح ملف غير موجود؟
5) لماذا نستخدم الكتلة try-catch في التعامل مع الملفات؟
6) ما نوع الاستثناءات التي يتم اكتشافها أثناء التشغيل (runtime)؟
7) تأمل الكود التالي: ماذا سيكون الناتج عند تنفيذ الكود بالأعلى؟ اختر الإجابة الصحيح مما يلي:
snippet
public static void main(String[] args) {    try {        int result = divideNumbers(10, 0);        System.out.println("Result: " + result);    }    catch (ArithmeticException e) {        System.out.println("An arithmetic exception occurred " +                e.getMessage());    }}public static int divideNumbers(int dividend, int divisor) {    return dividend / divisor;}
8) تأمل الكود التالي: ماذا سيكون الناتج عند تنفيذ الكود بالأعلى؟ اختر الإجابة الصحيح مما يلي:
snippet
public static void main(String[] args) {    try {        String [] names = {"Ali", "Bandr", "Fahad"};        System.out.println(names[3]);    }    catch (ArrayIndexOutOfBoundsException e) {        System.out.println("Error: " + e.getMessage());    }}
9) أكمل الفراغ: من أنواع الاستثناءات في جافا، النوع الذي يسمى …........ ، وهو الاستثناء الذي يتحقق منه المترجِم أثناء ترجمة البرنامج، ويُلزمك بمعالجته (try-catch أو throws) قبل التنفيذ
10) تأمل الكود التالي:
snippet
public class Main {  public static void main(String[ ] args) {     int[] myNumbers = {1, 2, 3};      System.out.println(myNumbers[10]);    // This is an error!   }}
يحتوي الكود السابق على خطأ من نوع ............................
11) أكمل الفراغ: الاستثناء FileNotFoundException من نوع ........
12) تأمل الكود التالي، ماذا سيكون الناتج عند تنفيذه؟
snippet
public class Main{    public static void main(String[] args)    {        try        {            System.out.print("A");            int x = 5 / 0;            System.out.print("B");        }        catch (ArithmeticException e)        {            System.out.print("C");        }    }}

2السؤال الثاني: صح أم خطأ

1) الأخطاء النحوية Syntax errors ليست استثناءات، بل أخطاء تُكتشف أثناء الترجمة. صح أم خطأ؟
الصواب: صح
2) بعد الكتلة try لا بد من catch أو finally. صح أم خطأ؟
الصواب: صح
3) الكتلة catch (Exception e) لا تلتقط ArithmeticException. صح أم خطأ؟
الصواب: خطأ
4) OutOfMemoryError من نوع Error. صح أم خطأ؟
الصواب: صح

3السؤال الثالث: أكمل الفراغات

1) الكلاس الأب لكل استثناءات البرامج: .

💡 الكلاس الأساسي لجميع الاستثناءات.

الإجابة: Exception

2) القسمة على صفر تطلق Exception.

💡 القسمة على صفر: ___Exception.

الإجابة: Arithmetic

3) الفهرس خارج المصفوفة: ArrayIndexOutOfException.

💡 خارج الحدود بالإنجليزية.

الإجابة: Bounds

4) لإعلان الاستثناء في رأس الدالة نستخدم .

💡 تُكتب في رأس الدالة للتصريح بالاستثناء.

الإجابة: throws

4السؤال الرابع: التوصيل

طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):

  1. 1) try
  2. 2) catch
  3. 3) finally
  4. 4) throw
  5. 5) Error
  1. أ. تُنفَّذ دائمًا.
  2. ب. كود مشكوك فيه.
  3. ج. تطلق استثناء.
  4. د. مشكلة في الجهاز.
  5. هـ. تعالج الاستثناء.
المفتاح: (1) ب (2) هـ (3) أ (4) ج (5) د

5السؤال الخامس: أسئلة عملية

1) تتبّع الناتج:

snippet
public class Main{    public static void main(String[] args)    {        int[] a = {1, 2, 3};        try        {            System.out.println(a[3]);        }        catch (ArrayIndexOutOfBoundsException e)        {            System.out.println("Bad index");        }        finally        {            System.out.println("Done");        }    }}
الناتج الصحيح:
Output×
Bad index
Done

2) اكتب كود يقسم 10 على 0 داخل try ويطبع «لا يمكن القسمة على صفر» عند الخطأ.

الحل النموذجي:
Main.java
public class Main{    public static void main(String[] args)    {        try        {            System.out.println(10 / 0);        }        catch (ArithmeticException e)        {            System.out.println("لا يمكن القسمة على صفر");        }    }}
Output – JavaApplication (run)×
run:
لا يمكن القسمة على صفر
BUILD SUCCESSFUL (total time: 0 seconds)
قارن إجابتك بالحل:
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

أكمل الفراغات

اختر الكلمة الصحيحة من القائمة المنسدلة في كل فراغ. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: أسئلة عملية

1)

أكمل الكود من مثال الدرجات: معالجة رقم خارج حدود المصفوفة

try {    idx = scan.nextInt();    System.out.println("The mark is: " + marks[idx]);} ( e) {    System.out.println("ERROR: the number " + idx + " is out of range");} {    System.out.println("finally block");}
الإجابة: (1) catch · (2) ArrayIndexOutOfBoundsException · (3) finally
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».