Обработка исключений С#

497
22 января 2018, 05:11
try
{
x = Convert.ToInt32(Console.ReadLine());
} catch (ArgumentOutOfRangeException)
{            
}

Каким образом можно обработать сразу два исключения? (ArgumentOutOfRangeException и FormatException)

Answer 1

Просто добавьте ещё один блок catch:

try
{
    x = Convert.ToInt32(Console.ReadLine());
}
catch (ArgumentOutOfRangeException)
{
    ...
}
catch (FormatException)
{
    ...
}

Если код обработки одинаковый, можно воспользоваться блоком when (C# 6.0+):

try
{
    x = Convert.ToInt32(Console.ReadLine());
}
catch (Exception e)
when (e is ArgumentOutOfRangeException
   || e is FormatException)
{
    ...
}

Ещё один вариант, аналогичный предыдущему, но работающий в версиях ниже C# 6.0:

try
{
    x = Convert.ToInt32(Console.ReadLine());
}
catch (Exception e)
{
    if (!(e is ArgumentOutOfRangeException
       || e is FormatException))
        throw;
    ...
}
READ ALSO
Построение фигур по данным из бд - C# [требует правки]

Построение фигур по данным из бд - C# [требует правки]

Подскажите, как можно строить фигуры по данным из базы данных (может быть есть примеры)? Например прямоугольники, треугольники и тд

315
Мини логика игры Unity

Мини логика игры Unity

Есть 10 кнопоктак же есть метод PlayNumber(int i), который цепляется на OnClick с индексом i, который в свою очередь при нажатии на кнопку с этим индексом,...

203
ASP.NET MVC VK callback API

ASP.NET MVC VK callback API

Задача: Нужно сделать ВК бота который будет делать рассылку сообщенийРеализация на ASP

326