Crear excepciones en C#

Como vimos anteriormente cuando sucede un error en nuestro sistema, tendremos lo que se define como excepción

En este post, veremos una extensión a ese post. En el que crearemos nuestras propias excepciones. 

Los grandes beneficios de tener excepciones personalizas es que nos permite, obviamente controlar nuestro código, y principalmente se usa para monitorizar nuestra página web. 

Para nuestro ejemplo, imaginaremos que tenemos un sistema de facturas, y un usuario intenta acceder a una factura que no es suya. 

 

1 – Crear una excepción personalizada

Para crear una excepción personalizada, únicamente debemos crear una clase que implemente el objeto Exception e indicar un constructor, como vemos en el ejemplo. 

public class FacturaDiferenteClienteException : Exception
{
    public FacturaDiferenteClienteException(string message) : base(message)
    {
        Console.WriteLine(message);
        Util.EnviarEmailAlerta("Intento de hackeo", message);
    }
}

Para simular un sistema he creado una clase Util que contiene un método EnviarEmailAlerta, ya que este ejemplo en concreto es o bien un bug muy gordo o un intento de hackeo.

 

 

2 – Utilizar una excepción personalizada

Para utilizar nuestra excepción que acabamos de crear, debemos instanciarla manualmente, para ello, y para agilizar el ejemplo he creado una clase llamada Repository al que pasamos dos ids, y simplemente devuelve true o false. (el código completo está en github, link abajo)

Vamos al lio, hacemos la llamada, y si nos devuelve falso, es que, en este caso, el cliente y el dueño de la factura no coinciden, con lo que lanzaremos nuestra excepción, como vemos en el siguiente código:

if(!repo.ClienteYFacturaDuenoSonElMismo(clienteId, facturaId))
{
    throw new FacturaDiferenteClienteException($"El cliente {clienteId} esta intentando acceder a la factura {facturaId} que no le corresponde.");
}

 

Comparte