Lazar Excepciones Personalizadas

31/03/2007 - 18:53 por Lazarte Federico | Informe spam
Estimados.

Tengo una jerarkia de clases, de la siguiente manera:

public class ExceptionDB:System.Exception
{
public ExceptionDB() {}
public ExceptionDB(string message) {}
public ExceptionDB(string message, Exception inner) {}
public ExceptionDB(SerializationInfo info, StreamingContext context)
{}


}//end ExceptionDB

y las voy lanzando con un case similar al siguiente:

stwith (exep)
case 1
throw(new ExceptionDB("No se pudo conectar a la BD"));
case 2
throw(new ExceptionDBDataNull("Los Datos Enviados no pueden
ser nulos"));

Ahora todo bien, lanzo la exepcion de mi programa y genera la que
corresponde segun el numero que le paso.La idea es devolver un objeto
tipo exepcion para que el usuario y le muestre el mensaje
personalizado (("No se pudo conectar a la BD"). Hasta ahora las
exepciones las catcheaba, pero, me mostraba un mensaje como este "A
ExceptionDB exeption was trown).
Alguien sabe como lanzar estas exepciones personalizadas?.
Desde ya muchas gracias.
 

Leer las respuestas

#1 Alberto Poblacion
31/03/2007 - 19:31 | Informe spam
"Lazarte Federico" wrote in message
news:
Estimados.

Tengo una jerarkia de clases, de la siguiente manera:

public class ExceptionDB:System.Exception
{
public ExceptionDB() {}
public ExceptionDB(string message) {}
public ExceptionDB(string message, Exception inner) {}
public ExceptionDB(SerializationInfo info, StreamingContext context)
{}


}//end ExceptionDB

y las voy lanzando con un case similar al siguiente:

stwith (exep)
case 1
throw(new ExceptionDB("No se pudo conectar a la BD"));
case 2
throw(new ExceptionDBDataNull("Los Datos Enviados no pueden
ser nulos"));

Ahora todo bien, lanzo la exepcion de mi programa y genera la que
corresponde segun el numero que le paso.La idea es devolver un objeto
tipo exepcion para que el usuario y le muestre el mensaje
personalizado (("No se pudo conectar a la BD"). Hasta ahora las
exepciones las catcheaba, pero, me mostraba un mensaje como este "A
ExceptionDB exeption was trown).
Alguien sabe como lanzar estas exepciones personalizadas?.



Si la clase ExceptionDB que has puesto arriba es auténtica, y no solo una
muestra del "esqueleto", entonces no estás guardando en ningún sitio los
mensajes cuando creas la excepción, ya que todos tus constructrores están
vacíos. La clase debería guardar los textos que recibe en el constructor,
que ahora mismo los estás despreciando y por lo tanto no hay forma de que
lleguen al "catch". Por ejemplo asi:

public class ExceptionDB:System.Exception
{
public ExceptionDB() {}
public ExceptionDB(string message) : base(message) {}
//...etc...
}//end ExceptionDB

Luego la lanzas con throw(new ExceptionDB("No se pudo conectar a la
BD"));

Y en el catch donde la interceptes muestras el .Message de la excepción
capturada, que traerá el texto que le has metido.

Preguntas similares