Sto lavorando in un servizio Windows (usando VB.Net) per uso interno del mio dipartimento. Quando viene catturato un certo tipo di eccezione ( FooException
per ora), seguo la stessa logica:
- Registra l'eccezione
- Invia un'email a qualcuno
Per riutilizzare il codice e non copiare e incollare le stesse righe in ogni blocco catch FooException
ho creato un metodo FooExceptionHandler
nella mia classe ExceptionHandling
. Così ho finito con un codice come questo:
FooExceptionHandler(fooException)
{
//log the exception
try
{
//send email
}
catch SmtpException
{
//log the smtp exception
}
}
La mia domanda riguarda come organizzare il codice. Questo dovrebbe essere un metodo statico? Tutte le classi di gestione delle eccezioni dovrebbero essere statiche? Dovrebbe essere un singleton? Dovrebbe essere orientato agli oggetti?
Se il caso orientato agli oggetti è il modo migliore, dovrei creare un nuovo oggetto in ogni blocco catch o è meglio avere una variabile di classe?