Методы создания и использования пользовательских исключений в C#

В C# вы можете определять собственные исключения для обработки определенных ошибок в коде. Вот несколько способов создания и использования пользовательских исключений в C#:

  1. Создание пользовательского класса исключений.
    Чтобы создать собственный класс исключений, вы можете получить его от базового класса Exception или любого из его производных классов. Вот пример:

    public class CustomException : Exception
    {
       public CustomException(string message) : base(message)
       {
       }
    }

    В этом примере класс CustomExceptionявляется производным от базового класса Exception. У него есть конструктор, который принимает параметр сообщения и передает его конструктору базового класса.

  2. Вызов пользовательского исключения.
    Чтобы создать собственное исключение, вы можете просто создать экземпляр своего собственного класса исключений и создать его с помощью ключевого слова throw. Вот пример:

    throw new CustomException("This is a custom exception.");

    Это вызовет экземпляр класса CustomExceptionс указанным сообщением.

  3. Перехват пользовательского исключения.
    Чтобы перехватить пользовательское исключение, вы можете использовать блок try-catchи указать тип исключения, которое вы хотите перехватить. Вот пример:

    try
    {
       // Code that may throw a CustomException
    }
    catch (CustomException ex)
    {
       // Handle the exception
       Console.WriteLine("CustomException occurred: " + ex.Message);
    }

    В этом примере блок catchбудет перехватывать только экземпляры класса CustomException.

  4. Добавление пользовательских данных в исключения.
    Вы также можете добавить пользовательские данные в свои пользовательские исключения, определив свойства или поля в своем пользовательском классе исключений. Это может быть полезно для предоставления дополнительной информации об исключении. Вот пример:

    public class CustomException : Exception
    {
       public int ErrorCode { get; }
       public CustomException(string message, int errorCode) : base(message)
       {
           ErrorCode = errorCode;
       }
    }

    В этом примере класс CustomExceptionимеет дополнительное свойство ErrorCode, которое можно установить при создании экземпляра исключения.