Обработка исключений
Корректно обрабатывайте ошибки выполнения с помощью методов обработки исключений
«Обработка исключений» — бесплатный урок C# Academy на CoddyKit. Это урок 3 из 5. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 5 уроков всего.
Введение в обработку исключений
Обработка исключений
Добро пожаловать на следующий урок! На этом уроке Вы узнаете об обработке исключений в C#, её важности и эффективных способах обработки ошибок в приложениях. Начнём!

Что такое обработка исключений?
Что такое обработка исключений?
Обработка исключений — это механизм контролируемой реакции на ошибки времени выполнения. Он позволяет программе корректно восстанавливаться после непредвиденных ситуаций.
Главное: Используйте обработку исключений, чтобы приложение не завершалось аварийно и предоставляло пользователям понятную информацию.
Блок try-catch
Блок try-catch
Блок try-catch используется для обработки исключений. Код, который может вызвать исключение, помещается в блок try, а блок catch обрабатывает это исключение. Пример:
Главное: Используйте конкретные типы исключений в блоке catch, чтобы обрабатывать разные ошибки.
using System;
class Program {
static void Main() {
try {
int result = 10 / 0; // This will throw a DivideByZeroException
} catch (DivideByZeroException ex) {
Console.WriteLine("Error: " + ex.Message);
}
}
}
Блок finally
Блок finally
Блок finally используется для выполнения кода, который должен запускаться независимо от того, произошло исключение или нет. Пример:
Совет: Используйте блок finally для освобождения ресурсов, например закрытия файлов или подключений к базе данных.
using System;
class Program {
static void Main() {
try {
int[] numbers = { 1, 2, 3 };
Console.WriteLine(numbers[5]); // This will throw an IndexOutOfRangeException
} catch (IndexOutOfRangeException ex) {
Console.WriteLine("Error: " + ex.Message);
} finally {
Console.WriteLine("This will always execute.");
}
}
}
Генерация исключений
Генерация исключений
Для ручной генерации исключений можно использовать ключевое слово throw. Пример:
Главное: Генерируйте исключения, чтобы обеспечивать соблюдение правил или обрабатывать недопустимые ситуации в приложении.
using System;
class Program {
static void Main() {
try {
ValidateAge(15);
} catch (Exception ex) {
Console.WriteLine("Error: " + ex.Message);
}
}
static void ValidateAge(int age) {
if (age < 18) {
throw new ArgumentException("Age must be 18 or older.");
}
}
}
Пользовательские исключения
Пользовательские исключения
Можно определить пользовательские классы исключений для обработки конкретных ошибок приложения. Пример:
Совет: Используйте пользовательские исключения, чтобы предоставлять понятные сообщения об ошибках, соответствующие логике Вашего приложения.
using System;
class CustomException : Exception {
public CustomException(string message) : base(message) {}
}
class Program {
static void Main() {
try {
throw new CustomException("This is a custom exception.");
} catch (CustomException ex) {
Console.WriteLine("Caught custom exception: " + ex.Message);
}
}
}
Практическое задание
Практическое задание
Создайте программу, которая получает от пользователя число и вызывает исключение, если число отрицательное. Используйте блок try-catch для обработки исключения. Пример:
using System;
class Program {
static void Main() {
try {
Console.WriteLine("Enter a number:");
int number = int.Parse(Console.ReadLine());
if (number < 0) {
throw new ArgumentException("Number cannot be negative.");
}
Console.WriteLine("You entered: " + number);
} catch (Exception ex) {
Console.WriteLine("Error: " + ex.Message);
}
}
}
Рекомендации по обработке исключений
Рекомендации по обработке исключений
Вот несколько рекомендаций:
- Перехватывайте только конкретные исключения, чтобы не скрывать другие ошибки.
- Используйте блок
finallyдля освобождения ресурсов. - Вызывайте исключения только в исключительных ситуациях, а не для управления ходом выполнения программы.
- Записывайте исключения в журнал, чтобы отслеживать проблемы в рабочей среде.
Совет: Правильная обработка исключений делает приложение более надёжным и удобным для пользователей.
Повторение: обработка исключений
Отличная работа!
Поздравляем! Вы научились эффективно обрабатывать исключения и создавать приложения, устойчивые к ошибкам. На следующем уроке мы изучим работу с базами данных для управления данными и выполнения запросов. Продолжим программировать!

Часто задаваемые вопросы
Урок «Обработка исключений» бесплатный?
Да — полный текст урока «Обработка исключений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 5 уроков всего.
Чему я научусь в уроке «Обработка исключений»?
Корректно обрабатывайте ошибки выполнения с помощью методов обработки исключений Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 5.
Сколько времени занимает урок «Обработка исключений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Чтение и запись файлов
- Работа с JSON и XML
- Обработка исключений
- Работа с базами данных
- Использование LINQ для запросов к данным