Упражнения C#

Собственные исключения для бизнес-ошибок в C#

В этом уроке вы создадите собственный тип исключения для бизнес-ошибки и будете перехватывать именно этот тип ошибки.

Введение

Вместо общего Exception можно определить исключение, название которого ясно описывает бизнес-ошибку, например нехватку товара на складе. Код становится понятнее, а обработка ошибок может перехватывать именно тот тип ошибки, который нужно обработать.

Класс InsufficientStockException наследует от Exception, поэтому ведёт себя как обычное исключение. Метод Reserve выбрасывает это исключение, если запрошенное количество превышает остаток на складе. Блок catch перехватывает только тип InsufficientStockException и выводит сообщение Not enough stock.

Пример на C#, который можно запустить

C#
Запустить код →
Program.cs
using System;
class InsufficientStockException(string message) : Exception(message) { }
class Program
{
    static void Reserve(int available, int requested)
    {
        if (requested > available) throw new InsufficientStockException("Not enough stock");
    }
    static void Main()
    {
        try { Reserve(2, 3); }
        catch (InsufficientStockException error) { Console.WriteLine(error.Message); }
    }
}
Результат выполнения
Not enough stock

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи