كيف يتم التعامل مع الاستثناءات المخصصة في Java؟

ستساعدك هذه المقالة على فهم الاستثناءات المخصصة في Java وستدعم الشرح مع عرض عملي للمفهوم.

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

ماذا تعني مساحة الاسم في c ++

سيتم تغطية المؤشرات التالية في هذه المقالة ،





الشروع في العمل هذه المقالة حول الاستثناءات المخصصة في Java.

استثناءات مخصصة في Java

يمكن إنشاء استثناءات مخصصة على النحو التالي ،



[جافا]
// فئة تمثل استثناءً محددًا بواسطة المستخدم
تمدد الفئة InvalidAgeException الاستثناء {
InvalidAgeException (سلسلة) {
سوبر (ق)
}
}
[/ جافا]

// class التي تستخدم InvalidAgeException class Test {static void validate (int age) يطرح InvalidAgeException {if (age<18) throw new InvalidAgeException('Invalid') else System.out.println('Eligible to Drive') } public static void main(String args[]){ try{ validate(15) }catch(Exception m){System.out.println('Exception: '+m)} System.out.println('Exit') } } 

انتاج:

الاستثناء: InvalidAgeException: غير صالح



خروج

المضي قدمًا في هذه المقالة حول الاستثناءات المخصصة في Java.

الحاجة إلى استثناءات مخصصة

في كثير من الأحيان ، يجد المبرمج الحاجة إلى تحديد استثناءه الخاص.

يمكن أن تكون أسباب تقديم هذه الاستثناءات كما يلي:

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

توفر Java للمستخدم استثناءين:

  • استثناء فحص مخصص
  • استثناء مخصص لم يتم التحقق منه

المضي قدمًا في هذه المقالة حول الاستثناءات المخصصة في Java.

استثناءات فحص مخصصة

الاستثناءات المحددة المخصصة هي الاستثناءات التي توسع java.lang.Exception. إنها قابلة للاسترداد بطبيعتها ويتم التعامل معها بشكل صريح. في المثال التالي ، تتم كتابة رمز لإرجاع السطر الأول من الملف كإخراج:

حاول (ملف الماسح الضوئي = ماسح ضوئي جديد (ملف جديد (اسم الملف))) {if (file.hasNextLine ()) إرجاع file.nextLine ()} catch (FileNotFoundException e) {}

يطرح الرمز استثناء FileNotFound. سبب هذا الاستثناء غير معروف للمستخدم. نحن غير مدركين لمصدر الاستثناء ، سواء كان ناتجًا عن عدم وجود الملف ، أو بسبب اسم ملف غير صالح. لتنفيذ استثناء مخصص ، يتم توسيع فئة java.lang.Exception.

تمدد الفئة العامة InvalidFileNameException الاستثناء {public InvalidFileNameException (سلسلة errorMessage) {super (errorMessage)}}

يتم إنشاء استثناء مخصص محدد يسمى InvalidFileNameException.

يجب توفير مُنشئ أثناء إنشاء الاستثناء. في حالتنا ، يأخذ المُنشئ String كرسالة خطأ ، ويستدعي مُنشئ الصنف الأصل.

حاول (ملف الماسح الضوئي = ماسح ضوئي جديد (ملف جديد (اسم الملف))) {if (file.hasNextLine ()) إرجاع file.nextLine ()} catch (FileNotFoundException e) {if (! isCorrectFileName (fileName)) {رمي جديد InvalidFileNameException ( 'اسم الملف غير صالح:' + fileName)}}

على الرغم من أن المستخدم يدرك الآن الاستثناء الدقيق ، فقد فقدنا السبب الجذري للاستثناء. يمكن إصلاح ذلك عن طريق إضافة java.lang.Trrowable إلى المنشئ. يمكن الآن استخدام InvalidFileNameException مع السبب الجذري للاستثناء:

العامة InvalidFileNameException (سلسلة ErrorMessage ، Throwable Error) {super (errorMessage، err)}

المضي قدمًا في هذه المقالة حول الاستثناءات المخصصة في Java

استثناءات مخصصة لم يتم التحقق منها

تمدد الاستثناءات المحددة المخصصة java.lang.RuntimeException. لا يمكن استردادها في الطبيعة.

تمدد فئة عامة InvalidFileExtensionException RuntimeException {public InvalidFileExtensionException (سلسلة errorMessage، Throwable Error) {super (errorMessage، err)}}

يستخدم هذا الاستثناء على النحو التالي:

حاول (ملف الماسح الضوئي = ماسح ضوئي جديد (ملف جديد (اسم الملف))) {if (file.hasNextLine ()) {return file.nextLine ()} else {throw new IllegalArgumentException ('الملف غير قابل للقراءة.')}} catch ( خطأ FileNotFoundException) {if (! isCorrectFileName (fileName)) {throw new InvalidFileNameException ('اسم الملف غير صالح:' + fileName، err)}} catch (IllegalArgumentException يخطئ) {if (! containsExtension (fileName)) {رمي جديد InvalidFileExtensionException ('Filename ليس له أي امتداد: '+ اسم الملف ، يخطئ)}}

الاستثناءات التي يحددها المستخدم ضرورية لأنها تمكننا من تحديد الاستثناءات الخاصة بنا.

وهكذا وصلنا إلى نهاية هذا المقال. إذا كنت ترغب في معرفة المزيد ، تحقق من Java Training بواسطة Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.