دروس جافا

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

طرق جافا

طرق جافا معلمات طريقة جافا طريقة جافا التحميل الزائد نطاق جافا العودية جافا

فئات جافا

جافا OOP فئات / كائنات جافا سمات فئة Java طرق فئة جافا منشئو جافا معدِّلات جافا تغليف جافا حزم جافا / API الوراثة جافا جافا تعدد الأشكال فئات جافا الداخلية جافا التجريد واجهة جافا جافا Enums مدخلات مستخدم جافا تاريخ جافا جافا ArrayList جافا لينكدليست جافا HashMap جافا هاشسيت جافا التكرار فئات Java Wrapper استثناءات Java جافا RegEx خيوط جافا جافا لامدا

معالجة ملفات جافا

ملفات جافا جافا إنشاء / كتابة الملفات ملفات قراءة جافا جافا حذف الملفات

جافا كيف

أضف عددين

مرجع جافا

كلمات جافا طرق سلسلة جافا طرق جافا للرياضيات

أمثلة جافا

أمثلة جافا مترجم جافا تمارين جافا مسابقة جافا شهادة جافا


استثناءات Java - حاول ... Catch


استثناءات Java

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

عند حدوث خطأ ما ، ستتوقف Java عادةً وتنشئ رسالة خطأ. المصطلح التقني لهذا هو: سوف تطرح Java استثناء (بطرح خطأ).


جافا حاول وأمسك

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

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

تأتي الكلمات الرئيسية tryوالكلمات catchالرئيسية في أزواج:

بناء الجملة

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

ضع في اعتبارك المثال التالي:

سيؤدي هذا إلى ظهور خطأ ، لأن myNumbers [10] غير موجود.

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

سيكون الإخراج شيئًا كالتالي:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

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

مثال

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}

سيكون الإخراج:

Something went wrong.

أخيرا

تتيح لك العبارة finallyتنفيذ التعليمات البرمجية ، بعد try...catchذلك ، بغض النظر عن النتيجة:

مثال

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}

سيكون الإخراج:

Something went wrong.
The 'try catch' is finished.


رمي الكلمة

تسمح throwلك العبارة بإنشاء خطأ مخصص.

يتم throwاستخدام العبارة مع نوع الاستثناء . هناك العديد من أنواع الاستثناءات المتوفرة في Java: ArithmeticException، FileNotFoundException، ArrayIndexOutOfBoundsException، SecurityException، إلخ:

مثال

قم بطرح استثناء إذا كان العمر أقل من 18 عامًا (اطبع "تم رفض الوصول"). إذا كان عمرك 18 عامًا أو أكثر ، فقم بطباعة "تم منح حق الوصول":

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

سيكون الإخراج:

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

إذا كان عمرك 20 عامًا ، فلن تحصل على استثناء:

مثال

checkAge(20);

سيكون الإخراج:

Access granted - You are old enough!

اختبر نفسك مع التمارين

ممارسه الرياضه:

أدخل الأجزاء المفقودة لمعالجة الخطأ في الكود أدناه.

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}