English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O C# inclui tipos de exceções integradas, como NullReferenceException, MemoryOverflowException e outros. No entanto, quando as regras de negócio do seu aplicativo são violadas, você geralmente deseja lançar uma exceção. Portanto, é possível criar classes de exceções personalizadas derivando da classe ApplicationException.
a partir do .Net v1.0, o .Net Framework introduziu a classe ApplicationException. Ela visa ser usada como a classe base para classes de exceção personalizadas. No entanto, a Microsoft agora recomenda usar a classe Exception para criar classes de exceção personalizadas.
Por exemplo, crie a classe InvalidStudentNameException no aplicativo de escola, que não permite que o nome de qualquer estudante contenha caracteres especiais ou valores numéricos.
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("Nome de Estudante Inválido: {0}", name)) {}} } }
Agora, desde que o nome do programa contenha caracteres especiais ou números, é possível causar InvalidStudentNameException no programa. Use a palavra-chave throw para lançar a exceção.
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); } }
Nome de Estudante Inválido: James000
Portanto, você pode criar classes de exceção personalizadas para distinguir exceções do sistema.