ArgumentNullException
Конструктор ArgumentNullException с одним
аргументом принимает имя параметра, а не
текст сообщения:
new ArgumentNullException(nameof(value)).
У ArgumentException
первым идёт строка message.
Синтаксис
throw new ArgumentNullException(nameof(value));
Пример
Давайте поймаем исключение и выведем Message:
using System;
class Program
{
static void Main()
{
string value = null;
try
{
if (value is null)
{
throw new ArgumentNullException(nameof(value));
}
}
catch (ArgumentNullException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
"Value cannot be null. (Parameter 'value')"
Пример
Давайте проверим имя параметра в сообщении:
using System;
class Program
{
static void Main()
{
try
{
throw new ArgumentNullException(nameof(text));
}
catch (ArgumentNullException ex)
{
Console.WriteLine(ex.ParamName);
}
}
}
Результат выполнения кода:
"text"
Пример
Давайте убедимся, что не-null строка не бросает:
using System;
class Program
{
static void Main()
{
string value = "abcde";
try
{
if (value is null)
{
throw new ArgumentNullException(nameof(value));
}
Console.WriteLine("ok");
}
catch (ArgumentNullException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
"ok"
Смотрите также
-
ThrowIfNull,
статическая проверка наnull -
ArgumentException,
другие ошибки аргумента -
Exception,
базовый класс -
throw,
выброс исключения