Search⌘ K
AI Features

Creating and Throwing Exceptions

Explore how to create custom exception classes in C# by inheriting from System.Exception or ArgumentException. Understand how to throw these exceptions with the throw keyword and use exception filters to handle errors conditionally. Gain insights into best practices for rethrowing exceptions while preserving stack traces, enabling robust and clear error management in your .NET applications.

Although .NET provides many built-in exception types, applications often require specific error handling for domain-specific scenarios. Developers handle these scenarios by creating custom exceptions.

Note: To create a custom exception, we define a class that inherits from the System.Exception class or one of its derived classes.

Defining a custom exception

Consider a login feature that validates a username and password. If the credentials are invalid, we should throw an exception that explicitly states the failure reason rather than a generic error.

We start by inheriting from the base Exception class.

public class InvalidCredentialsException : Exception
{
public InvalidCredentialsException(string message)
: base(message)
{
}
}
A basic custom exception class
  • Line 1: We define the class InvalidCredentialsException and inherit from Exception. The suffix “Exception” follows standard .NET naming conventions.

  • Line 3: We define a constructor that accepts a custom error message.

  • Line 4: We pass the message to the base class constructor to allow standard message retrieval.

Adding custom data

Custom ...