Исключения в C#

НАВИГАЦИЯ ПО СТРАНИЦЕ

Генерация исключений Обработка исключений finally

Исключения представляют собой механизм для обработки ошибок и нештатных ситуаций в программе. Они позволяют программистам отлавливать и обрабатывать ошибки, что способствует более надежному и контролируемому выполнению кода.

  1. Генерация исключений:

    • Исключение создается с использованием ключевого слова throw.

    • Можно использовать встроенные исключения или создавать пользовательские.

      public class Example
      {
          public void Method(int value)
          {
              if (value < 0)
              {
                  throw new ArgumentOutOfRangeException(nameof(value), "Value cannot be negative");
              }
              // Другой код
          }
      }
  2. Обработка исключений:

    • Исключения обрабатываются с использованием блока try-catch.

    • В блоке try помещается код, где может возникнуть исключение, а блок catch перехватывает и обрабатывает исключение.

      public class Program
      {
          public static void Main(string[] args)
          {
              Example example = new Example();
              try
              {
                  example.Method(-1);
              }
              catch (ArgumentOutOfRangeException ex)
              {
                  Console.WriteLine("Caught exception: " + ex.Message);
              }
          }
      }
  3. Финальные действия с помощью блока finally:

    • Блок finally позволяет выполнить код после блока try-catch, независимо от того, возникло исключение или нет.

       public class Program
      {
          public static void Main(string[] args)
          {
              Example example = new Example();
              try
              {
                  example.Method(-1);
              }
              catch (ArgumentOutOfRangeException ex)
              {
                  Console.WriteLine("Caught exception: " + ex.Message);
              }
              finally
              {
                  Console.WriteLine("Finally block executed.");
              }
          }
      }

Пример кода:

using System;

public class Example
{
    public void Method(int value)
    {
        if (value < 0)
        {
            throw new ArgumentOutOfRangeException(nameof(value), "Value cannot be negative");
        }
        // Другой код
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        Example example = new Example();
        try
        {
            example.Method(-1);
        }
        catch (ArgumentOutOfRangeException ex)
        {
            Console.WriteLine("Caught exception: " + ex.Message);
        }
        finally
        {
            Console.WriteLine("Finally block executed.");
        }
    }
}

Этот код демонстрирует использование исключений для обработки ситуации, когда значение меньше нуля, и выводит сообщение об ошибке, а затем выполнение кода в блоке finally.

Исключения позволяют программистам обрабатывать ошибки и нештатные ситуации, обеспечивая более надежное выполнение кода и контролируемую обработку ошибок.