English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

Java التحكم في العملية

Java مجموعة Array

Java تعليمات برمجة موجهة إلى الكائنات (I)

Java تعليمات برمجة موجهة إلى الكائنات (II)

Java تعليمات برمجة موجهة إلى الكائنات (III)

معالجة الاستثناء Java

Java قائمة List

Java مجموعة Queue (الطابور)

Java مجموعة Map

Java مجموعة Set

Java إدخال/إخراج (I/O)

Java Reader/Writer

مواضيع أخرى في Java

إنشاء استثناء مخصص في برنامج Java

جميع الأمثلة في Java

في هذا المثال، سنتعلم إنشاء استثناءات مخصصة مكتشفة ومتقدمة في Java.

لفهم هذا المثال، يجب أن تكون على علم بما يليبرمجة Javaالموضوع:

مثال 1: إنشاء برنامج Java مخصص لاستثناء الفحص

import java.util.ArrayList;
import java.util.Arrays;
//إنشاء فئة استثناء فحص مخصص
class CustomException extends Exception {
  public CustomException(String message) {
    //دعوة مكون بناء استثناء Exception
    super(message);
  }
}
class Main {
  ArrayList<String> languages = new ArrayList<>(Arrays.asList("Java", "Python", "JavaScript"));
  //تحقق من الاستثناء
  public void checkLanguage(String language) throws CustomException {
    //إذا كان language موجودًا بالفعل في ArrayList، أتلف استثناء
    if(languages.contains(language)) {
      throw new CustomException(اللغة + "  موجودة مسبقًا");
    }
    else {
      //إدراج language في ArrayList
      languages.add(language);
      System.out.println(اللغة + "  أضيفت إلى ArrayList");
    }
  }
  public static void main(String[] args) {
    //إنشاء عميل فئة Main
    Main obj = new Main();
    //معالجة الاستثناء باستخدام try...catch
    try {
      obj.checkLanguage("Swift");
      obj.checkLanguage("Java");
    }
    catch(CustomException e) {
      System.out.println("[" + e + "]) يحدث استثناء;
    }
  }
}

نتائج الإخراج

Swift أضيفت إلى ArrayList
[CustomException: Java already exists] حدث استثناء

في المثال السابق، قمنا بتوسيع استثناء Exception لإنشاء استثناء مخصص يُدعى CustomException. هنا، نستخدم كلمة المفتاح super() لتكليف مكون بناء استثناء Exception من دالة بناء CustomException.

في دالة checkLanguage()، قمنا بالتحقق من الحالات الاستثنائية، وإذا حدث استثناء، فإن دالة try..catch ستتعامل مع الاستثناء.

في هذا السياق، هذا هو الاستثناء المُتحقق منه. يمكننا أيضًا إنشاء استثناء غير معدين في Java. للحصول على معلومات إضافية حول الاستثناءات المعدينة وغير المعدينة، يُرجى زيارةاستثناءات Java.

مثال2: إنشاء استثناء غير معدين مخصص

import java.util.ArrayList;
import java.util.Arrays;
//إنشاء استثناء غير معدين
class CustomException extends RuntimeException {
  public CustomException(String message) {
    //دعوة مكون بناء RuntimeException
    super(message);
  }
}
class Main {
  ArrayList<String> languages = new ArrayList<>(Arrays.asList("Java", "Python", "JavaScript"));
  //تحقق من الحالات الاستثنائية
  public void checkLanguage(String language) {
    //إذا كانت اللغة موجودة في ArrayList، فتُتعرض إلى استثناء
    if(languages.contains(language)) {
      throw new CustomException(اللغة + "  موجودة مسبقًا");
    }
    else {
      //إدراج لغة البرمجة في ArrayList
      languages.add(language);
      System.out.println(اللغة + "  أضيفت إلى ArrayList");
    }
  }
  public static void main(String[] args) {
    //إنشاء عنصر للفئة Main
    Main obj = new Main();
    //تحقق من وجود لغة البرمجة
    obj.checkLanguage("Swift");
    obj.checkLanguage("Java");
  }
}

نتائج الإخراج

Swift تمت إضافتها إلى ArrayList
Exception in thread "main" CustomException: Java already exists
        at Main.checkLanguage(Main.java:21)
        at Main.main(Main.java:37)

في المثال السابق، قمنا بتوسيع فئة RuntimeException لإنشاء فئة استثناء مخصص غير مفحوص.

في هذا السياق، قد لاحظت أننا لم نعلن عن أيtry ... catchالمقطع. هذا لأن الاستثناءات غير المفحوصة يتم فحصها أثناء التشغيل.

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

جميع الأمثلة في Java