У меня есть класс, в котором около 20 с лишним методов. Каждый выполняет некоторую обработку сообщений веб-службы. Мне просто нужно было внести в него изменения, и я понял, что у каждого из этих методов есть одна и та же попытка / уловка:
try
{
/* *** actual processing specific to each method goes here *** */
}
catch (FaultException<CustomException> cfex)
{
// common stuff
}
catch (CustomException cfex)
{
// common stuff
}
catch (Exception ex)
{
// common stuff
}
finally
{
FinalizeServiceCall(wsBus, wsMessage, response, logProps);
}
Мой вопрос; вместо того, чтобы иметь один и тот же блок try / catch в каждом методе, есть ли способ сделать его общим? Я думал, что в .NET есть такие вещи, как TransactionScope
, которые каким-то образом определяют, возникает ли исключение при выходе из этого блока. Могу ли я использовать что-то подобное, чтобы создать общий блок try / catch? Есть ли другие идеи?