duplicate code

22/11/2007 - 22:23 von Anas | Report spam
Hallo,

Ich möchte den folgenden Code in 10 verschiedenen Methoden schreiben, wie
kann ich am besten den code einmal in einem Ort zentralisieren, damit man
nicht jedes mal das gleiche wieder schreibt?

catch (Exception ex)
{
bool rethrow = ExceptionPolicy.HandleException(ex, "Log Only Policy");
if (rethrow)
{
throw;
}
}

Vielen Dank
 

Lesen sie die antworten

#1 Michael v. Fondern
23/11/2007 - 08:12 | Warnen spam
Hallo Anas,
Ich möchte den folgenden Code in 10 verschiedenen Methoden schreiben, wie
kann ich am besten den code einmal in einem Ort zentralisieren, damit man
nicht jedes mal das gleiche wieder schreibt?

catch (Exception ex)
{


bool rethrow = ExceptionPolicy.HandleException(ex, "Log Only Policy");
if (rethrow)
{
throw;
}
}



Du kannst natürlich den inneren Teil in eine Methode bringen, und diese
dann 10x aufrufen:

static void HandleOrRethrowEx(Exception ex)
{
bool rethrow = ExceptionPolicy.HandleException(ex, "Log Only Policy");
if (rethrow)
{
throw;
}
}

Alternativ kannst du dir auch überlegen, ob du dein Exception-Handling
evtl. eine Aufrufebene höher ansiedeln kannst, so dass du mehrere deiner
10 Methoden mit einer einzelnen Ausnahmebehandlung versorgst. Oder ob
einige deiner 10 Methoden evtl. so weit übereinstimmen, dass du den
gesamten try ... catch-Teil rausziehen kannst, ggf. durch
Parametrisierung. Was definitiv nicht geht: den "catch"-Block (incl. dem
umschließenden catch) alleine ohne den "try"-Block in eine Methode
verlagern.

Grüße

- Michael -

Ähnliche fragen