English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C # يتضمن أنواع استثنائية مدمجة مثل NullReferenceException و MemoryOverflowException وما إلى ذلك. ولكن، عندما يتم انتهاك قواعد أعمال تطبيقك، فإنك عادةً تريد إطلاق استثنائية. لذلك، يمكنك إنشاء فئة استثنائية مخصصة عن طريق تدرج ApplicationException.
من .Net v1.0، قام .Net framework بإدخال فئة ApplicationException. إنها مصممة لتكون أساسًا لفئات استثناء مخصصة. ولكن، يُنصح Microsoft الآن باستخدام فئة Exception لإنشاء فئات استثناء مخصصة.
على سبيل المثال، في تطبيق المدرسة، قم بإنشاء فئة InvalidStudentNameException التي لا تسمح لأي اسم طالب يحتوي على رموز خاصة أو أرقام.
class Student {}} public int StudentID { get; set; } public string StudentName { get; set; } } [Serializable] class InvalidStudentNameException : Exception {}} public InvalidStudentNameException() {}} } public InvalidStudentNameException(string name) : base(String.Format("Invalid Student Name: {0}", name)) {}} } }
الآن، إذا كان اسم البرنامج يحتوي على رموز خاصة أو أرقام، يمكن إثارة InvalidStudentNameException في البرنامج. استخدم كلمة المفتاح throw لإثارة الاستثناء.
class Program {}} static void Main(string[] args) {}} Student newStudent = null; try {}} newStudent = new Student(); newStudent.StudentName = "James007"; ValidateStudent(newStudent); } catch(InvalidStudentNameException ex) {}} Console.WriteLine(ex.Message); } Console.ReadKey(); } private static void ValidateStudent(Student std) {}} Regex regex = new Regex("^[a-zA-Z]+$"); if (!regex.IsMatch(std.StudentName)) throw new InvalidStudentNameException(std.StudentName); } }
اسم الطلاب غير صالح: James000
لذلك، يمكنك إنشاء فئة استثناء مخصصة للتمييز بين الاستثناءات النظامية.