当我的应用程序失败时,catch
块显示带有异常堆栈跟踪的messageBox,以便我可以轻松查看失败的行数。
try
块包含调用其他块的main方法。
catch (Exception e)
{
DetailsTextBox.Text = e.StackTrace;
}
有时,来自另一个类(不是主类)的方法会失败 由于我想显示相同的messageBox,从catch块中我将异常抛给主类:
catch (Exception ex)
{
throw (ex);
}
我的问题:
现在,堆栈跟踪显示的行号是我抛出异常的行,而不是应用程序失败的行。
有什么想法吗?
答案 0 :(得分:3)
您应该使用throw
而不是throw (ex)
,因为这会丢失堆栈跟踪。
然而,正如John Saunders所指出的那样,你可能最好不要首先捕获异常,尽管在某些情况下这可能会有用。