In un progetto parallelo su cui sto lavorando Mi è venuto in mente un modo per gestire le eccezioni che è regolabile in base alla configurazione. Quindi un blocco try / catch potrebbe apparire come questo:
try
{
fileHelper.MoveFile(file, destFolder);
}
catch (IOException ex)
{
if (exceptionHandler.HandleException(ex))
{
return ResultCode.Fail;
}
throw;
}
La granularità della gestione delle eccezioni è controllata tramite un enum
impostato nel file app.config:
public enum SystemFailureMode
{
AlwaysThrow = -1,
Aggressive = 0,
Standard = 1,
Lenient = 2
}
Determina se un'eccezione è "gestita" e restituita come un errore, o se bolle e arresta il sistema. All'inizio pensavo di aver scoperto un nuovo modello di design, ma ora sembra che sia probabilmente un anti-pattern. Cosa ne pensate?
Dopo aver esaminato i commenti e pensato a me stesso, ho deciso che questo è decisamente un anti-modello. Il fatto che questo abbia il potenziale per trasformare i test delle unità di scrittura in un incubo è sufficiente a disattivarmi.