English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C # inclut des types d'exceptions intégrés tels que NullReferenceException, MemoryOverflowException, etc. Mais, lorsque les règles métier de votre application sont violées, vous souhaitez généralement déclencher une exception. Par conséquent, vous pouvez créer une classe d'exception personnalisée en dérivant de la classe ApplicationException.
de .NET v1.NET Framework a introduit la classe ApplicationException à partir de la version .0. Elle est destinée à être utilisée comme classe de base pour les classes d'exceptions personnalisées. Cependant, Microsoft recommande maintenant d'utiliser la classe Exception pour créer des classes d'exceptions personnalisées.
Par exemple, dans une application scolaire, créez la classe InvalidStudentNameException qui n'autorise pas l'utilisation de caractères spéciaux ou de chiffres dans le nom des étudiants.
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("Nom d'étudiant invalide : {0}", name)) {}} } }
Maintenant, si le nom du programme contient des caractères spéciaux ou des chiffres, InvalidStudentNameException peut être déclenchée dans le programme. Utilisez le mot-clé throw pour déclencher l'exception.
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--Z]+$ if (!regex.IsMatch(std.StudentName)) throw new InvalidStudentNameException(std.StudentName); } }
Nom d'étudiant invalide : James000
Par conséquent, vous pouvez créer des classes d'exceptions personnalisées pour distinguer les exceptions système.