Класс DebuggerNonUserCodeAttribute
Начиная с .NET 2.0, если вы пометите метод с атрибутом [ DebuggerNonUserCode ] , отладчик пропустит в нем первые случайные исключения.
Цитата из ссылки на MSDN (выделено мной):
Участники
которые не являются частью кода
специально созданная пользователем банка
усложнить отладку .
Этот атрибут подавляет отображение
из этих вспомогательных типов и членов в
окно отладчика и автоматически
шаги через , а не в,
предоставленный дизайнером код.
Не существует поведения во время выполнения, кроме отладки, связанной с этим атрибутом.
Однако, если у вас есть только один метод с определенными строками, предназначенный для включения в механизм обработки исключений для первого шанса Visual Studio, и другие строки, подлежащие исключению, вероятно, не существует решения на этом уровне детализации. Вы всегда можете реорганизовать большой метод в несколько методов и использовать атрибут в некоторых.
Дополнительная информация ...
Пример использования из этой статьи
using System.Diagnostics;
using XL = Microsoft.Office.Interop.Excel;
public static class WorkbookExtensions
{
[DebuggerNonUserCode]
public static bool TryGetWorksheet(this XL.Workbook wb, string worksheetName, out XL.Worksheet retrievedWorksheet)
{
bool exists = false;
retrievedWorksheet = null;
try
{
retrievedWorksheet = GetWorksheet(wb, worksheetName);
exists = retrievedWorksheet != null;
}
catch(COMException)
{
exists = false;
}
return exists;
}
[DebuggerNonUserCode]
public static XL.Worksheet GetWorksheet(this XL.Workbook wb, string worksheetName)
{
return wb.Worksheets.get_Item(worksheetName) as XL.Worksheet;
}
}
В статье показаны связанные параметры проекта VS, которые могут быть полезны.