我可以获取在错误例程中首次调用的方法吗?

时间:2016-10-28 19:37:22

标签: c# vb.net

我正在尝试获取在程序集中调用导致错误的方法的方法。

我有一个记录错误的错误例程。我想得到调用程序集和方法以及发生错误的程序集和方法。我得到了4分中的3分,我只是无法弄清楚如何获得调用方法。

假设我有一个表单,并且单击了一个按钮,调用另一个组件中的方法出错。我想要与表单和单击事件一起发生错误的程序集和方法。点击事件是我找不到的。

VB

Dim Trace As System.Diagnostics.StackTrace
Trace = New System.Diagnostics.StackTrace(ex, True)

'Returns the assembly where the error occurred
Trace.GetFrame(Trace.FrameCount - 1).GetMethod.ReflectedType.FullName

'Returns the calling assembly
Assembly.GetCallingAssembly.FullName.Split(","c)(0)'Would be nice to get the class too but I can live without it.

'Method where the error occurs
ex.TargetSite.Name

'Initial calling method
???

C#

System.Diagnostics.StackTrace Trace;
Trace = New System.Diagnostics.StackTrace(ex, True);

//Returns the assembly where the error occurred
Trace.GetFrame(Trace.FrameCount - 1).GetMethod().ReflectedType.FullName;

//Returns the calling assembly
Assembly.GetCallingAssembly().FullName.Split(',')[0];//Would be nice to get the class too but I can live without it.

//Method where the error occurs
ex.TargetSite.Name;

//Initial calling method
???

enter image description here

我可以看到堆栈跟踪中的源代码(Main.btnCancel_CLick但是无法获取它。我的堆栈跟踪帧数是1,我有一个方法,那个带有try catch块的方法。除非有其他方法可以得到它,我无法弄清楚。有人知道吗?

0 个答案:

没有答案