Padrão de design / truque C # para um bit repetido de código

Eu tenho um serviço WCF que registra todas as exceções e, em seguida, lança-os como FaultExceptions.

Eu estou fazendo muita repetição, e. em cada método de serviço.

try { 
   // do some work

}
catch(Exception ex)
{
  Logger.log(ex);

  // actually will be Fault Exception but you get the idea.
  throw ex;
}

Eu estou procurando uma maneira mais elegante de fazer isso como eu estou cortando e colando o try / catch ao longo de cada serviço.

Existe um padrão de design / truque C # que poderia ser usado para tornar isso mais elegante?

questionAnswers(9)

yourAnswerToTheQuestion