If I recall correctly you can use a DebuggerStepThrough
attribute on the method that contains the code you don't want exception to fire. I suppose you can isolate the code that fires the annoying exception in a method and decorate it with the attribute.
Вы не можете выделить исключение, созданное в определенном месте вашего кода. Однако вы можете отключить исключения определенного типа.
Если ваш собственный код вызывает рассматриваемое исключение, я бы сделал его настраиваемым исключением, производным от любого подходящего типа, а затем отключил бы прерывание отладки для этого производного типа.
] Отключение системных исключений как NullReferenceException повлияет на всю систему, что, конечно, нежелательно во время разработки.
Обратите внимание, что есть два типа поведения прерывания для исключений:
Вы можете удалить проверку в 'Thrown'
DebuggerHidden
- ваш друг!
Среда CLR не придает семантике этому атрибуту. Он предназначен для использования отладчиками исходного кода. Например, отладчик Visual Studio 2005 не останавливается на методе, отмеченном этим атрибутом, и не позволяет устанавливать точку останова в методе. Другими атрибутами отладчика, распознаваемыми отладчиком Visual Studio 2005, являются DebuggerNonUserCodeAttribute и DebuggerStepThroughAttribute.
Протестировано на VS2010, отлично работает.
Хотя DebuggerStepThrough
, похоже, также работает для некоторых конкретных версий отладчика, DebuggerHidden
, судя по комментариям к обоим ответам, работает для более широкого круга ситуаций.
Обратите внимание, что обе опции в настоящее время не работают с методами блока итератора или с методами async / await . Это может быть исправлено в более позднем обновлении Visual Studio.