ArithmeticException
ArithmeticException наследует SystemException.
От него происходят
DivideByZeroException
и OverflowException.
Блок catch (ArithmeticException)
ловит и деление int на ноль, и
переполнение в checked.
Явно new ArithmeticException() в коде
приложений почти не бросают.
Синтаксис
try
{
int res = 1 / 0;
}
catch (ArithmeticException)
{
}
Пример
Давайте поймаем деление int на ноль
через базовый тип:
using System;
class Program
{
static void Main()
{
try
{
int res = 1 / 0;
}
catch (ArithmeticException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте поймаем OverflowException как
ArithmeticException:
using System;
class Program
{
static void Main()
{
try
{
checked
{
int res = int.MaxValue + 1;
}
}
catch (ArithmeticException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте проверим тип пойманного деления на ноль:
using System;
class Program
{
static void Main()
{
try
{
int res = 1 / 0;
}
catch (ArithmeticException ex)
{
Console.WriteLine(ex is DivideByZeroException);
}
}
}
Результат выполнения кода:
True
Смотрите также
-
DivideByZeroException,
наследник для деления на ноль -
OverflowException,
наследник для переполнения -
checked,
который включаетOverflowException -
FormatException,
которое не наследуетArithmeticException