Есть ли способ направить С# для игнорирования NullReferenceException
(или любого конкретного исключения, если на то пошло) для набора операторов.
Это полезно при попытке прочитать свойства из десериализованного объекта, который может содержать в нем много нулевых объектов.
Наличие вспомогательного метода для проверки нулевого значения может быть одним из способов, но я ищу что-то близкое к "On Error Resume Next" (от VB) на блоке уровня инструкции.
РЕДАКТИРОВАТЬ: Try-Catch пропустит следующие утверждения в исключении
try
{
stmt 1;// NullReferenceException here, will jump to catch - skipping stmt2 and stmt 3
stmt 2;
stmt 3;
}
catch (NullReferenceException) { }
Например: я десериализую XML-сообщение для объекта, а затем попытаюсь получить доступ к свойству типа
Message.instance[0].prop1.prop2.ID
теперь prop2 может быть нулевым объектом (поскольку он не существует в XML-сообщении - необязательный элемент в XSD). прямо сейчас мне нужно проверить значение null для каждого элемента в иерархии, прежде чем обращаться к элементу листа. i.e Я должен проверить, если экземпляр [0], prop1, prop2 не равен null, перед доступом к "ID".
Есть ли лучший способ избежать проверки нулевого элемента для каждого элемента в иерархии?