Datapayasadas

abril 10, 2010

Relanzar Excepciones

Filed under: .Net, C#, Desarrollo, Excepciones — Matías @ 6:52 pm

Me encontraba buscando la causa de porque perdía el stack trace al relanzar excepciones capturadas y finalmente logre dar en el clavo, las estaba usando mal… shame on me!.

No recuerdo de donde tomé la mala costumbre, pero lo que venía haciendo hasta ahora era:

try
{
    // Algo de código
}
catch (Exception ex)
{
    // Hago algo con ex
    throw ex;
}

Resulta que al hacer esto no estamos relanzando la excepción original, estamos iniciando un nuevo camino para la excepción usando la misma instancia de ex.

Para solucionarlo, es decir, no perder el stack trace debemos modificar el código para que quede así:

try
{
    // Algo de código
}
catch (Exception ex)
{
    // Hago algo con ex
    throw;
}

¿Soy el único pavote que lo hacía mal?

Quiero creer que no 🙂

Anuncios

1 comentario »

  1. Matias, no se si es estrictamete malo hacerlo de a prinera forna.
    Si estas escribiendo un log en disco quizas no sea estrictamente necesario lanzar la misma excepion y todo depende de cuanta informacion desees guardar.

    Saludos!

    Comentario por Pabloide86 — abril 12, 2010 @ 6:07 pm


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: