ArgumentOutOfRangeException
Конструкторы принимают имя параметра,
сообщение и необязательное фактическое
значение: (paramName),
(paramName, message) или
(paramName, actualValue, message).
В Message может добавиться строка
с ActualValue. Готовые проверки -
в ThrowIf*.
Синтаксис
throw new ArgumentOutOfRangeException(nameof(index), "abcde");
throw new ArgumentOutOfRangeException(nameof(index), value, "abcde");
Пример
Давайте поймаем исключение с текстом "abcde":
using System;
class Program
{
static void Main()
{
try
{
throw new ArgumentOutOfRangeException(nameof(index), "abcde");
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
"abcde (Parameter 'index')"
Пример
Давайте передать фактическое значение:
using System;
class Program
{
static void Main()
{
try
{
throw new ArgumentOutOfRangeException(nameof(index), 10, "abcde");
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
abcde (Parameter 'index')
Actual value was 10.
Пример
Давайте используем только имя параметра:
using System;
class Program
{
static void Main()
{
try
{
throw new ArgumentOutOfRangeException(nameof(offset));
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message.Contains("offset"));
}
}
}
Результат выполнения кода:
True
Смотрите также
-
ThrowIfNegative,
и другие статические проверки -
ArgumentException,
базовый класс -
Exception,
корень иерархии -
throw,
выброс исключения