Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Propagar excepciones en C#?

Estas en el tema de ¿Propagar excepciones en C#? en el foro de .NET en Foros del Web. Me gustaría saber cómo puedo hacer para propagar el lanzamiento de una excepción al nivel superior, el equivalente a poner en Java el Throws en ...
  #1 (permalink)  
Antiguo 08/10/2011, 10:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta ¿Propagar excepciones en C#?

Me gustaría saber cómo puedo hacer para propagar el lanzamiento de una excepción al nivel superior, el equivalente a poner en Java el Throws en la cabecera de un método. Un ejemplo:

Código C#:
Ver original
  1. metodo();
  2.  
  3. metodo()
  4. {
  5.     peligroso(); //Método que puede generar una excepción
  6. }

No quiero que la excepción se lance sobre la llamada peligroso(), sino sobre la llamada metodo(). La razón es que metodo() lo tengo ya compilado en un DLL, y cuando se añade como referencia a un proyecto y se produce tal excepción, el IDE abre el código del DLL y señala la excepción dentro de él. Quiero evitar que cualquiera pueda ver el código del DLL de esta manera.

¡Gracias!
  #2 (permalink)  
Antiguo 08/10/2011, 11:52
Avatar de giovani_loera  
Fecha de Ingreso: mayo-2011
Ubicación: Tijuana
Mensajes: 225
Antigüedad: 12 años, 11 meses
Puntos: 21
Respuesta: ¿Propagar excepciones en C#?

Si tienes un tryCatch en el metodo 'Peligroso', para mandar o subir la excepcion tienes q poner en el Catch la instruccion throw; Esto hace q lanze la excepcion.

Pero si no tienes un tryCatch en el Metodo Peligroso, se lanzara sola la excepcion.

Lo que puede es que en el Metodo Peligroso, guardar la excepcion en la BD (esto si estas guardar los errores en el Program). Y al ultimo lanzes el Error.
  #3 (permalink)  
Antiguo 08/10/2011, 13:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: ¿Propagar excepciones en C#?

Cierto, con un throw se lanza, pero se lanza justo de la misma manera como si no lo pusiera. Igualmente abre el código del DLL y me marca la línea en la que se produce la excepción. :( Es decir, que se sigue lanzando a nivel de metodo() y no a nivel de main
  #4 (permalink)  
Antiguo 09/10/2011, 04:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Respuesta: ¿Propagar excepciones en C#?

Resuelto, lo pongo por si a alguien le sirve.

Ciertamente, es imposible por limitación del lenguaje. Lo he visto en MSDN, en esta página: http://msdn.microsoft.com/es-us/libr...(v=vs.90).aspx. Abajo del todo dice lo siguiente:

"C# no admite excepciones controladas. En Java, éstas se declaran con la palabra clave throws para especificar que un método puede producir un tipo particular de excepción que el código de llamada debe controlar."

Me sé de alguien que se va a pasar a Java xD

Gracias por la respuesta, giovani_loera

Etiquetas: arriba, c#, excepcion, nivel, propagar, superior, throws
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:51.