抛出的异常细节

时间:2014-05-01 08:09:42

标签: c# exception stack-trace

当我的应用程序失败时,catch块显示带有异常堆栈跟踪的messageBox,以便我可以轻松查看失败的行数。
try块包含调用其他块的main方法。

catch (Exception e)
{
    DetailsTextBox.Text = e.StackTrace;
}

有时,来自另一个类(不是主类)的方法会失败 由于我想显示相同的messageBox,从catch块中我将异常抛给主类:

catch (Exception ex)
{
    throw (ex);
}  

我的问题:
现在,堆栈跟踪显示的行号是我抛出异常的行,而不是应用程序失败的行

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您应该使用throw而不是throw (ex),因为这会丢失堆栈跟踪。

然而,正如John Saunders所指出的那样,你可能最好不要首先捕获异常,尽管在某些情况下这可能会有用。