Create Custom Exception Class in C#
We have seen built-in exception classes in the previous section. However, you often like to raise an exception when the business rule of your application gets violated. So, for this you can create a custom exception class by deriving Exception or ApplicationException class.
The .Net framework includes ApplicationException class since .Net v1.0. It was designed to use as a base class for the custom exception class. However, Microsoft now recommends Exception class to create a custom exception class.
For example, create InvalidStudentNameException class in a school application, which does not allow any special character or numeric value in a name of any of the students.
Example: ApplicationException
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)) { } }
Now, you can raise InvalidStudentNameException in your program whenever the name contains special characters or numbers. Use the throw keyword to raise an exception.
Example: throw custom exception
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); } }
0 Comments