Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: SARGE553413 en 12 Julio 2014, 16:51 PM

Título: Duda con excepciones en .NET
Publicado por: SARGE553413 en 12 Julio 2014, 16:51 PM
Hola a todos.

Tengo un bloque 'try' dentro del cual hay 5 llamadas a metodos que lanzan InvalidOperationException.
Me gustaría saber, en el bloque 'catch', cuál de los 5 métodos ha lanzado la excepción, para imprimir el nombre del método por pantalla.

¿Cómo puedo saber que método ha lanzado la excepción, si todos lanzan la misma?

Gracias y saludos.
Título: Re: Duda con excepciones en .NET
Publicado por: Eleкtro en 12 Julio 2014, 17:10 PM
Puedes obtener el nombre del método que lanzó la excepcion, utilizando la propiedad Exception.TargetSite (http://msdn.microsoft.com/en-us/library/system.exception.targetsite.aspx).

CitarGets the method that throws the current exception.

Nota: Pero antes de pensar en usarlo para todas las circunstancias, deberías leer las "Remarks" del MSDN.

Ejemplo de uso:

Código (vbnet) [Seleccionar]
Public Class Form1

   Private Sub Test() Handles MyBase.Shown

       Try
           Me.Method1()
           Me.Method2()

       Catch ex As Exception
           MessageBox.Show(String.Format("Nombre del método: {0}", ex.TargetSite.Name))

       End Try

   End Sub

   Private Sub Method1()
       Exit Sub
       Throw New InvalidOperationException
   End Sub

   Private Sub Method2()
       Throw New InvalidOperationException
   End Sub

End Class


PD: También está disponible el nombre del método en el StackTrace (http://msdn.microsoft.com/en-us/library/system.exception.stacktrace%28v=vs.110%29.aspx), pero deberías parsear el String resultante, solo te lo comento como dato adicional porque sería una tontería hacer eso, ya que TargetSite obtiene el nombre desde el StackTrace, así que además si el StackTrace está vacío tampoco habrá un TargetSite accesible.

Saludos.
Título: Re: Duda con excepciones en .NET
Publicado por: SARGE553413 en 12 Julio 2014, 18:08 PM
Ok, gracias.
Título: Re: Duda con excepciones en .NET
Publicado por: elezekiel en 17 Julio 2014, 00:24 AM
exceelente ejemplo me fue de utilidad :D

gracias!!