У меня есть класс, который содержит около 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? Любые другие идеи?