DivideByZeroException
Для int выражения 1 / 0 и
1 % 0 бросают DivideByZeroException.
Для double деление 1.0 / 0.0
исключения не даёт - получают
PositiveInfinity.
Тип наследует
ArithmeticException.
Синтаксис
try
{
int res = 1 / 0;
}
catch (DivideByZeroException)
{
}
Пример
Давайте поймаем деление int на ноль:
using System;
class Program
{
static void Main()
{
try
{
int res = 1 / 0;
}
catch (DivideByZeroException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте проверим double - исключения
нет, есть бесконечность:
using System;
class Program
{
static void Main()
{
double res = 1.0 / 0.0;
Console.WriteLine(double.IsPositiveInfinity(res));
}
}
Результат выполнения кода:
True
Пример
Давайте поймаем остаток % 0 для
int:
using System;
class Program
{
static void Main()
{
try
{
int res = 1 % 0;
}
catch (DivideByZeroException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Смотрите также
-
ArithmeticException,
базовый класс дляDivideByZeroException -
OverflowException,
другой наследникArithmeticException -
константа
PositiveInfinity,
которую получают приdouble / 0 -
FormatException,
сбой формата строки, а не деления