English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C # umfasst eingebaute Ausnahmearten wie NullReferenceException, MemoryOverflowException und andere. Aber wenn die Geschäftsregeln Ihrer Anwendung verletzt werden, möchten Sie normalerweise eine Ausnahme auslösen. Daher können Sie durch Ableiten von der ApplicationException-Klasse eine benutzerdefinierte Ausnahmeklasse erstellen.
ab .Net v1.0 mit der Einführung der .Net-Framework-Klasse ApplicationException. Sie ist dazu bestimmt, als Basisklasse für benutzerdefinierte Ausnahme-Klassen zu dienen. Allerdings empfiehlt Microsoft heute, die Klasse Exception zu verwenden, um benutzerdefinierte Ausnahme-Klassen zu erstellen.
Zum Beispiel, erstellen Sie in der Schule eine Anwendung InvalidStudentNameException-Klasse, die es nicht erlaubt, dass der Name eines Schülers spezielle Zeichen oder numerische Werte enthält.
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)) {}} } }
Jetzt kann eine InvalidStudentNameException in der Anwendung ausgelöst werden, wenn der Programmname spezielle Zeichen oder Ziffern enthält. Verwenden Sie den Schlüsselwort 'throw', um eine Ausnahme auszulösen.
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); } }
Ungültiger Student Name: James000
Daher können Sie benutzerdefinierte Ausnahme-Klassen erstellen, um zwischen Systemausnahmen zu unterscheiden.