Puedes obtener el nombre del método que lanzó la excepcion, utilizando la propiedad
Exception.TargetSite.
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:
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, 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.