elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Duda con excepciones en .NET
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con excepciones en .NET  (Leído 2,312 veces)
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Duda con excepciones en .NET
« 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.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Duda con excepciones en .NET
« Respuesta #1 en: 12 Julio 2014, 17:10 pm »

Puedes obtener el nombre del método que lanzó la excepcion, utilizando la propiedad Exception.TargetSite.

Citar
Gets 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
  1. Public Class Form1
  2.  
  3.    Private Sub Test() Handles MyBase.Shown
  4.  
  5.        Try
  6.            Me.Method1()
  7.            Me.Method2()
  8.  
  9.        Catch ex As Exception
  10.            MessageBox.Show(String.Format("Nombre del método: {0}", ex.TargetSite.Name))
  11.  
  12.        End Try
  13.  
  14.    End Sub
  15.  
  16.    Private Sub Method1()
  17.        Exit Sub
  18.        Throw New InvalidOperationException
  19.    End Sub
  20.  
  21.    Private Sub Method2()
  22.        Throw New InvalidOperationException
  23.    End Sub
  24.  
  25. End Class

PD: También está disponible el nombre del método en el StackTrace, 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.


« Última modificación: 12 Julio 2014, 21:04 pm por Eleкtro » En línea



SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Re: Duda con excepciones en .NET
« Respuesta #2 en: 12 Julio 2014, 18:08 pm »

Ok, gracias.
En línea

elezekiel

Desconectado Desconectado

Mensajes: 246


Ver Perfil
Re: Duda con excepciones en .NET
« Respuesta #3 en: 17 Julio 2014, 00:24 am »

exceelente ejemplo me fue de utilidad :D

gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con excepciones.
Java
|Miguel| 0 1,767 Último mensaje 5 Febrero 2012, 19:29 pm
por |Miguel|
Problema con las excepciones
Programación C/C++
amchacon 3 2,404 Último mensaje 28 Enero 2013, 14:50 pm
por amchacon
Problema con Excepciones en C#
.NET (C#, VB.NET, ASP)
ORTUS 2 3,213 Último mensaje 13 Junio 2013, 16:43 pm
por ORTUS
Duda con excepciones de c++: ios_base::failure
Programación C/C++
SARGE553413 2 2,091 Último mensaje 27 Julio 2014, 11:44 am
por SARGE553413
Duda con excepciones C++
Programación C/C++
Gunhack 2 2,230 Último mensaje 7 Junio 2015, 04:48 am
por Gunhack
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines