Gestión de excepciones en c#

La gestión de excepciones es un punto siempre importante para garantizar que una aplicación se comporta de manera adecuada ante situaciones inesperadas.

Aquí tenéis una implementación de un “framework” muy simple, pero extensible, que nos permitirá normalizar la gestión de las excepciones en nuestro sistema.

La clase Work<T>:

public class Work<T>

{
private readonly Func<Task<T>> task;
private readonly ExceptionHandler exceptionHandler;

public Work(Func<Task<T>> task)
: this(task, new NoExceptionHandler())
{ }

public Work(
Func<Task<T>> task,
ExceptionHandler handler)
{
this.task = task;
exceptionHandler = handler;
}

public async Task<Result<T>> Run()
{
try
{
var result = await task();
return Ok(result);
}
catch (Exception ex)
{
exceptionHandler.Handle(ex);
return Error();
}
}
}

Nos permitirá ejecutar tareas asíncronas y gestionar las posibles excepciones que puedan ocurrir. Además, aprovechando el uso del patrón decorador con la interface ExceptionHandler, podremos personalizar el comportamiento de nuestro código cuando se de alguna excepción.

Incluso podemos crear un handler para gestionar esas típicas excepciones comunes que tenemos en nuestro proyecto y que repetimos una y otra vez por todos lados.

Aquí tenéis el código con tests y todo 🙂

https://github.com/juanlao/ExceptionHandlingLibrary

Espero que os sirva

Design a site like this with WordPress.com
Get started