Исключения в C# представляют собой механизм обработки ошибок, который позволяет программе реагировать на непредвиденные ситуации, такие как деление на ноль, попытка доступа к несуществующему элементу массива или ошибки ввода-вывода.
Обработка исключений с использованием try-catch
Для обработки исключений используется конструкция try-catch
, которая позволяет перехватывать и обрабатывать ошибки.
using System;
class Program
{
static void Main()
{
try
{
int x = 10;
int y = 0;
int result = x / y;
}
catch (DivideByZeroException ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
}
}
Вывод:
Ошибка: Попытка деления на ноль.
Использование finally
Блок finally
выполняется в любом случае, независимо от того, было ли исключение.
using System;
class Program
{
static void Main()
{
try
{
Console.WriteLine("Открытие файла");
throw new Exception("Ошибка при работе с файлом");
}
catch (Exception ex)
{
Console.WriteLine($"Исключение: {ex.Message}");
}
finally
{
Console.WriteLine("Закрытие файла");
}
}
}
Вывод:
Открытие файла
Исключение: Ошибка при работе с файлом
Закрытие файла
Генерация пользовательских исключений
Можно создавать собственные исключения, унаследовавшись от Exception
.
using System;
class CustomException : Exception
{
public CustomException(string message) : base(message) { }
}
class Program
{
static void Main()
{
try
{
throw new CustomException("Это пользовательское исключение");
}
catch (CustomException ex)
{
Console.WriteLine($"Обнаружено исключение: {ex.Message}");
}
}
}
Вывод:
Обнаружено исключение: Это пользовательское исключение
Основные типы исключений в C#
ArgumentException
— передан недопустимый аргумент.NullReferenceException
— обращение к объекту, равномуnull
.IndexOutOfRangeException
— выход за пределы массива.InvalidOperationException
— вызов метода в недопустимом состоянии.IOException
— ошибки ввода-вывода.
Исключения в C# помогают контролировать выполнение программы и предотвращать аварийное завершение работы при возникновении ошибок.