Can you get Method name that threw Exception?

那年仲夏 提交于 2020-01-02 07:32:36

问题


Is there a C# method that returns to the upper-most caller, the Name of MY Method that threw an exception, even if the actual exception was thrown by another (e.g. database driver errors when my method calls it) ?

Caller -> MyMethod -> DbDriver(error)

I want "MyMethod", not "DbDriver"

I'd rather not re-throw exceptions all the way up the chain.

My current kludge, is to iterate through the StackTrace frames, and parse out my Method using MethodBase.GetCurrentMethod().DeclaringType.

Is there a built-in method to get this information or a more elegant solution?

Thanks!


回答1:


Use Exception.TargetSite property to get the method name

Gets the method that throws the current exception.




回答2:


You need the stack trace ability.

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



来源:https://stackoverflow.com/questions/16666338/can-you-get-method-name-that-threw-exception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!