Ответ
Runtime error (ошибка времени выполнения) — это исключение, которое возникает во время исполнения программы, когда синтаксически корректный код приводит к недопустимой операции. В отличие от ошибок компиляции, компилятор не может их обнаружить на этапе сборки.
Распространённые примеры исключений времени выполнения в .NET:
NullReferenceException: Попытка обращения к члену объекта, который равенnull.IndexOutOfRangeException: Попытка доступа к элементу массива или коллекции по индексу за её пределами.DivideByZeroException: Деление целочисленного значения на ноль.InvalidCastException: Неудачное приведение типа во время выполнения.StackOverflowException: Бесконечная рекурсия, исчерпавшая стек вызовов.OutOfMemoryException: Нехватка доступной памяти для выделения нового объекта.
Пример кода, вызывающего ошибку времени выполнения:
int[] numbers = { 1, 2, 3 };
Console.WriteLine(numbers[5]); // IndexOutOfRangeException
Обработка ошибок времени выполнения:
Для обработки таких ситуаций и предотвращения аварийного завершения программы используется конструкция try-catch-finally.
try
{
int divisor = 0;
int result = 10 / divisor; // Потенциальный DivideByZeroException
}
catch (DivideByZeroException ex)
{
// Логируем и обрабатываем конкретную ошибку
Console.WriteLine($"Ошибка: {ex.Message}");
// Возвращаем значение по умолчанию или пробрасываем исключение выше
}
catch (Exception ex) // Общий обработчик для других исключений
{
Console.WriteLine($"Произошла непредвиденная ошибка: {ex.Message}");
}
finally
{
// Этот блок выполнится всегда, даже если было исключение
Console.WriteLine("Операция завершена (успешно или с ошибкой).");
}
Профилактика: Лучшая практика — предвосхищать возможные ошибки с помощью проверок (валидация входных данных, проверка на null, использование безопасных операторов как ?. и ??).