English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C # include built-in exception types such as NullReferenceException, MemoryOverflowException, and so on. However, when the business rules of your application are violated, you usually want to throw an exception. Therefore, you can create a custom exception class by deriving from the ApplicationException class.
A partire da .Net v1.0, il framework .Net ha introdotto la classe ApplicationException. È progettata per essere utilizzata come classe base per le classi di eccezione personalizzate. Tuttavia, Microsoft ora consiglia di utilizzare la classe Exception per creare classi di eccezione personalizzate.
Ad esempio, creare la classe InvalidStudentNameException nell'applicazione scolastica, che non permette di includere caratteri speciali o numeri di valore in nome degli studenti.
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)) {}} } }
Ora, se il nome del programma contiene caratteri speciali o numeri, è possibile far scattare InvalidStudentNameException nel programma. Lanciare l'eccezione utilizzando la parola chiave 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); } }
Nome studente non valido: James000
Di conseguenza, è possibile creare classi di eccezioni personalizzate per distinguere tra eccezioni di sistema.