English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C #는 내장된 예외 유형, 예를 들어 NullReferenceException, MemoryOverflowException 등을 포함하고 있습니다. 그러나 당신의 애플리케이션의 비즈니스 규칙이 위반될 때, 일반적으로 예외를 발생시키고 싶습니다. 따라서 ApplicationException 클래스를 계 thỸ하여 사용자 정의 예외 클래스를 생성할 수 있습니다.
부터 .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); } }
Invalid Student Name: James000
따라서, 따라서, 시스템 예외를 구분하기 위해 사용자 정의 예외 클래스를 생성할 수 있습니다.