2016-09-22 17 views
6

Ищете нулевую проверку и ловушку NullReferenceException, я наткнулся на это.Почему NullReferenceException стоит дороже любого другого исключения в среде CLR?

Ловля нулевого разыменования является одним из самых дорогостоящих операций, которые CLR может выполнять, и это может оказать серьезное влияние на производительность, если ваш код бросает много NullReferenceExceptions. Тестирование недействительности и выполнение чего-то еще (даже выброс исключения!) - более дешевая операция.

Здесь ссылка на вопрос, где я ее нашел. When is handling a null pointer/reference exception preferred over doing a null check?

Мне интересно, как можно поймать исключение NullReferenceException более дорогостоящим, чем исключение null и исключение бросания.

[не может комментировать там из-за недостаточного числа репутации]

ответ

8

Дело здесь не о том, что NullReferenceException дороже любого другого исключения. Стоимость исключения исключений возникает из разворачивания стека, и это больше зависит от структуры вызова, чем от конкретного исключения. Я считаю, что док пытается сделать так, что в первую очередь безопаснее защищать от исключения, чем обрабатывать его при его броске.

 Смежные вопросы

  • Нет связанных вопросов^_^