Ответ Алиостада наиболее близок к тому, что вы на самом деле просите, и это довольно крутое решение, но, честно говоря, я думаю, что это вопрос рефакторинга вашего кода. Как говорит Сказ, тот факт, что они все делают одно и то же, означает, что их, вероятно, можно объединить в один метод.
Чтобы максимально приблизиться к тому, что вы ищете, без полного изменения способа ведения бизнеса, я бы предложил общий класс обработки ошибок в вашем решении и фрагмент, который расширяет стандартный фрагмент Try-Catch, но все же передает достаточную информацию вашему обработчику, чтобы вы могли выполнять некоторые конкретные обработки исключений и настраиваемые сообщения об ошибках.
Ваш пользовательский класс обработки ошибок должен иметь метод, подобный следующему:
public void HandleError(Sysem.Reflection.MethodBase MethodBase, Exception Exception);
Это, или что-то подобное, я бы порекомендовал для вашего фрагмента.
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>try</Title>
<Shortcut>try</Shortcut>
<Description>Code snippet for try catch</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>expression</ID>
<ToolTip>Exception type</ToolTip>
<Function>SimpleTypeName(global::System.Exception)</Function>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[try
{
$selected$
}
catch (Exception ex)
{
YourErrorHandler.HandleError(System.Reflection.MethodBase.GetCurrentMethod(), ex);
}]]>
</Code>
</Snippet>
</CodeSnippet>
Очевидно, вы можете расширить метод HandleError так, как считаете нужным - в моих фрагментах для Интернета я передаю информацию о текущем пользователе, но вы можете использовать все, что захотите.
Удачи!
Адам