استثناءات مخصصة
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 43 من 59.
يمكنك إنشاء فئة استثناء خاصة بك عن طريق توسيع فئة Exception. هذا مفيد عندما تحتاج إلى التعامل مع أنواع معينة من الأخطاء في تطبيقك.
إليك كيفية إنشاء استثناء مخصص:
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}وإليك كيفية استخدامه:
if (age < 0) {
throw new AgeException("Invalid age: " + age);
}بعد تنفيذ الكود أعلاه بـ age = -5، يقوم البرنامج برمي:
AgeException: Invalid age: -5
التحدي
سهلأنشئ فئة استثناء مخصصة باسم EmailException وطريقة باسم validateEmail تأخذ وسيطًا واحدًا:
- سلسلة نصية (
email) للتحقق من صحتها
يجب أن تقوم الطريقة برمي الاستثناء المخصص الخاص بك مع هذه الرسائل:
- إذا كان البريد الإلكتروني null: "Email cannot be null"
- إذا كان البريد الإلكتروني فارغًا: "Email cannot be empty"
- إذا كان البريد الإلكتروني لا يحتوي على @: "Email must contain @"
- إذا كان البريد الإلكتروني لا يحتوي على أي نص قبل @: "Email must have a local part"
- إذا نجح التحقق: قم بإرجاع "Valid email"
ورقة مرجعية
قم بإنشاء استثناءات مخصصة عن طريق توسيع فئة Exception:
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}قم برمي استثناءات مخصصة باستخدام الكلمة المفتاحية throw:
if (age < 0) {
throw new AgeException("Invalid age: " + age);
}جرّب بنفسك
import java.util.Scanner;
class EmailException extends Exception {
public EmailException(String message) {
super(message);
}
}
public class Main {
public static String validateEmail(String email) throws EmailException {
// اكتب الكود الخاص بك هنا
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String email = scanner.nextLine();
if (email.equals("null")) {
email = null;
}
try {
System.out.println(validateEmail(email));
} catch (EmailException e) {
System.out.println(e.getMessage());
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم