Собственные исключения для бизнес-ошибок в C#
В этом уроке вы создадите собственный тип исключения для бизнес-ошибки и будете перехватывать именно этот тип ошибки.
Введение
Вместо общего Exception можно определить исключение, название которого ясно описывает бизнес-ошибку, например нехватку товара на складе. Код становится понятнее, а обработка ошибок может перехватывать именно тот тип ошибки, который нужно обработать.
Класс InsufficientStockException наследует от Exception, поэтому ведёт себя как обычное исключение. Метод Reserve выбрасывает это исключение, если запрошенное количество превышает остаток на складе. Блок catch перехватывает только тип InsufficientStockException и выводит сообщение Not enough stock.
Пример на C#, который можно запустить
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Практика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- Первый неверный возраст Проверяйте введённые возраста и сообщайте, где находится первая неверная запись, вместо того чтобы позволять программе аварийно завершаться. Легко
- Сумма корректных чисел Сложите элементы, которые являются целыми числами, и пропустите всё остальное, как try/except обрабатывает неверный ввод. Легко