3

是否有一个 C# 方法返回到最上面的调用者,即引发异常的MY 方法的名称,即使实际异常是由另一个引发的(例如,当我的方法调用它时出现数据库驱动程序错误)?

调用者 -> MyMethod -> DbDriver(错误)

我想要“MyMethod”,而不是“DbDriver”

我宁愿不要在整个链条上重新抛出异常。

我目前的 kludge 是遍历 StackTrace 帧,并使用MethodBase.GetCurrentMethod().DeclaringType.

是否有内置方法来获取此信息或更优雅的解决方案?

谢谢!

4

2 回答 2

16

使用Exception.TargetSite属性获取方法名

获取引发当前异常的方法。

于 2013-05-21T09:19:55.607 回答
0

您需要堆栈跟踪能力。

http://msdn.microsoft.com/de-de/library/system.environment.stacktrace(v=vs.80).aspx

于 2013-05-21T09:54:48.243 回答