catch y Situacion rara.

11/02/2004 - 21:38 por urjose | Informe spam
tengo el siguiente código


if(cmd.ExecuteNonQuery()>0)
{
Response.Cookies["mensaje"].Value = "2";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
Response.Redirect("../Mensajes.aspx");
}
else
{
Response.Cookies["mensaje"].Value = "3";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
Response.Redirect("../Mensajes.aspx");
}

}
catch(Exception ex)
{
Response.Cookies["mensaje"].Value = "5";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
//Response.Redirect("../Mensajes.aspx");
Response.Write(ex.Message);
}
finally
{
this.conn.Close();
}

El hecho es que debugueo. La cookie "mensaaje" obtiene el valor "2". No
genera excepcion, por lo tanto no entra al catch{}
Sin embargo una vez que llega al finally{} la cookie obtiene el valor "5"
que es es el valor que se le asigna en el catch. Alguien sabe que pasa? =S

Preguntas similare

Leer las respuestas

#1 urjose
11/02/2004 - 21:48 | Informe spam
La respuesta la encontre aquí:

http://www.dotnetforums.net/t78583.html

Por si le sirve a alguien
=P

"urjose" escribió en el mensaje
news:
tengo el siguiente código


if(cmd.ExecuteNonQuery()>0)
{
Response.Cookies["mensaje"].Value = "2";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
Response.Redirect("../Mensajes.aspx");
}
else
{
Response.Cookies["mensaje"].Value = "3";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
Response.Redirect("../Mensajes.aspx");
}

}
catch(Exception ex)
{
Response.Cookies["mensaje"].Value = "5";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
//Response.Redirect("../Mensajes.aspx");
Response.Write(ex.Message);
}
finally
{
this.conn.Close();
}

El hecho es que debugueo. La cookie "mensaaje" obtiene el valor "2". No
genera excepcion, por lo tanto no entra al catch{}
Sin embargo una vez que llega al finally{} la cookie obtiene el valor "5"
que es es el valor que se le asigna en el catch. Alguien sabe que pasa? =S


Respuesta Responder a este mensaje
#2 Alejandro Mezcua
12/02/2004 - 13:09 | Informe spam
Hola.

El 'problema' viene por hacer un catch de cualquier excepción
(catch(Exception ex)). En un bloque de tu código, según las guías de uso de
excepciones, deberías establecer sólo sentencias catch para las excepciones
que esperas y no capturar cualquier excepción. Para eso, en ASP.NET dispones
del evento 'Error' en la clase HttpApplication para el que se debe
establecer un handler. Creo recordar que se provee un handler para este
evento en Global.asax si usas Visual Studio.

En tu código deberías haber capturado sólo alguna excepción de ADO.NET.

Un saludo,

Alejandro Mezcua
MVP .NET
Zaltor Soluciones Informáticas

"urjose" wrote in message
news:
tengo el siguiente código


if(cmd.ExecuteNonQuery()>0)
{
Response.Cookies["mensaje"].Value = "2";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
Response.Redirect("../Mensajes.aspx");
}
else
{
Response.Cookies["mensaje"].Value = "3";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
Response.Redirect("../Mensajes.aspx");
}

}
catch(Exception ex)
{
Response.Cookies["mensaje"].Value = "5";
Response.Cookies["pagina"].Value = "/Usuarios/Empleador.aspx";
//Response.Redirect("../Mensajes.aspx");
Response.Write(ex.Message);
}
finally
{
this.conn.Close();
}

El hecho es que debugueo. La cookie "mensaaje" obtiene el valor "2". No
genera excepcion, por lo tanto no entra al catch{}
Sin embargo una vez que llega al finally{} la cookie obtiene el valor "5"
que es es el valor que se le asigna en el catch. Alguien sabe que pasa? =S


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida