Поделиться через


Некоторые API создают исключение ArgumentNullException

Теперь некоторые API проверяют входные параметры и создают исключение ArgumentNullException, тогда как раньше при вызове с входными аргументами null они создавали исключение NullReferenceException.

Описание изменения

В предыдущих версиях .NET при вызове с аргументом null затронутые API создают исключение NullReferenceException.

Начиная с версии .NET 6, при вызове с аргументом null затронутые API создают исключение ArgumentNullException.

Категория изменения

Это изменение влияет на совместимость на уровне двоичного кода.

Причина изменения

Создание исключения ArgumentNullException соответствует поведению среды выполнения .NET. Оно обеспечивает улучшенную отладку за счет четкого указания аргумента, который вызвал исключение.

Представленные версии

.NET 6

  • Проверьте и при необходимости обновите код, чтобы избежать передачи входных аргументов null в затронутые API.
  • Если ваш код обрабатывает NullReferenceException, замените или добавьте дополнительный обработчик для ArgumentNullException.

Затронутые API

В следующей таблице перечислены затронутые API и особые параметры.

Метод или свойство Наименование параметра
System.Windows.Forms.TreeNodeCollection.Item[Int32] index
DrawTreeNodeEventArgs(Graphics, TreeNode, Rectangle, TreeNodeStates) graphics
DataGridViewRowStateChangedEventArgs(DataGridViewRow, DataGridViewElementStates) dataGridViewRow
DataGridViewColumnStateChangedEventArgs(DataGridViewColumn, DataGridViewElementStates) dataGridViewColumn

См. также