English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C # включает встроенные типы исключений, такие как NullReferenceException, MemoryOverflowException и т.д. Однако, когда бизнес-правила вашего приложения нарушены, вы обычно хотите вызывать исключения. Поэтому можно создать пользовательские классы исключений, наследуя класс ApplicationException.
С.Net v1.0 .Net фреймворк ввел класс 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
Таким образом, вы можете создать пользовательские классы исключений, чтобы отличать системные исключения.