¡Se viene el black friday!! Para quienes querais comprar el libro bien de precio, aquí teneis un descuentazo del 20%!!;
Pero aprovechalo, porque la semana que viene será menor descuento!
Puedes ver el contenido de este vídeo junto con su curso en el modo vídeo (similar a Udemy) si pulsas aquí.

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.");
}

 


os mola la nueva interfaz?

a tope! 🚀 60%
Un cagarro 💩 40%

© copyright 2025 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café

🎨 Nueva Interfaz Disponible

¡Estamos probando una nueva interfaz con estilo Neo Brutalismo!

Esta es una versión en desarrollo que incluye:

  • ✨ Diseño moderno y audaz
  • 🎯 Mejor experiencia visual
  • 📱 Interfaz más limpia

¿Cómo activarla?

Añade ?useNewUI=true al final de cualquier URL

Ejemplo: https://netmentor.es?useNewUI=true

¿Cómo volver a la versión anterior?

Añade ?useNewUI=false al final de cualquier URL

⚠️ Esta es una versión en progreso. Algunos elementos pueden no funcionar perfectamente.