你能得到抛出异常的方法名吗

本文关键字:方法 抛出异常 | 更新日期: 2023-09-27 18:14:28

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

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

我想要"MyMethod",而不是"DbDriver"

我宁愿不重新抛出异常的所有方式的链。

我当前的组装,是迭代StackTrace帧,并使用MethodBase.GetCurrentMethod().DeclaringType解析出我的方法。

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

谢谢!

你能得到抛出异常的方法名吗

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

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

您需要堆栈跟踪能力。

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