ThrowIfNegative и родственные методы
Отдельного ThrowIf нет - есть семейство
методов: ThrowIfNegative,
ThrowIfNegativeOrZero,
ThrowIfGreaterThan,
ThrowIfLessThan. Они сравнивают
значение с условием и при ошибке бросают
ArgumentOutOfRangeException.
Синтаксис
ArgumentOutOfRangeException.ThrowIfNegative(num, nameof(num));
ArgumentOutOfRangeException.ThrowIfGreaterThan(num, limit, nameof(num));
Пример
Давайте поймаем ThrowIfNegative для -1:
using System;
class Program
{
static void Main()
{
int num = -1;
try
{
ArgumentOutOfRangeException.ThrowIfNegative(num, nameof(num));
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
num ('-1') must be a non-negative value. (Parameter 'num')
Actual value was -1.
Пример
Давайте успешно проверить 5 и напечатать "ok":
using System;
class Program
{
static void Main()
{
int num = 5;
try
{
ArgumentOutOfRangeException.ThrowIfNegative(num, nameof(num));
Console.WriteLine("ok");
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
"ok"
Пример
Давайте поймаем ThrowIfGreaterThan и ThrowIfLessThan:
using System;
class Program
{
static void Main()
{
int num = 10;
try
{
ArgumentOutOfRangeException.ThrowIfGreaterThan(num, 5, nameof(num));
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message.Split('\n')[0]);
}
num = 1;
try
{
ArgumentOutOfRangeException.ThrowIfLessThan(num, 5, nameof(num));
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message.Split('\n')[0]);
}
}
}
Результат выполнения кода:
num ('10') must be less than or equal to '5'. (Parameter 'num')
num ('1') must be greater than or equal to '5'. (Parameter 'num')
Смотрите также
-
ArgumentOutOfRangeException,
тип выбрасываемого исключения -
ArgumentException,
родительский класс -
Exception,
базовый тип -
throw,
явный выброс