C# 抛出的异常详细信息

C# 抛出的异常详细信息,c#,exception,stack-trace,C#,Exception,Stack Trace,当我的应用程序失败时,一个catch块会显示一个带有异常堆栈跟踪的messageBox,这样我就可以很容易地看到失败的行数。 try块包括调用其他方法的main方法 catch (Exception e) { DetailsTextBox.Text = e.StackTrace; } 有时,来自另一个类(不是主类)的方法会失败。 因为我想显示相同的messageBox,所以从catch块中,我将异常抛出到主类: catch (Exception ex) { throw (ex)

当我的应用程序失败时,一个
catch
块会显示一个带有异常堆栈跟踪的messageBox,这样我就可以很容易地看到失败的行数。
try
块包括调用其他方法的main方法

catch (Exception e)
{
    DetailsTextBox.Text = e.StackTrace;
}
有时,来自另一个类(不是主类)的方法会失败。
因为我想显示相同的messageBox,所以从catch块中,我将异常抛出到主类:

catch (Exception ex)
{
    throw (ex);
}  
我的问题:
现在堆栈跟踪显示的行号是我抛出异常的行号,而不是应用程序失败的行号


有什么想法吗?

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


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

您应该只使用
throw
not
throw(ex)
,因为这样会丢失堆栈跟踪


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

您应该只使用
throw
not
throw(ex)
,因为这样会丢失堆栈跟踪


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

您应该只使用
throw
not
throw(ex)
,因为这样会丢失堆栈跟踪


但是,正如John Saunders指出的那样,虽然在某些情况下这可能很有用,但最好不要首先捕获异常。

您应该只使用
throw
not
throw(ex)
,因为这样会丢失堆栈跟踪。或者更好,不要捕捉你不打算处理的异常。@DanielKelley。谢谢就这样!将其作为答案发布,以便我可以将其作为所选答案。您应该只使用
throw
而不是
throw(ex)
,因为这将丢失堆栈跟踪。或者,更好的做法是,不要捕获您不打算处理的异常。@DanielKelley。谢谢就这样!将其作为答案发布,以便我可以将其作为所选答案。您应该只使用
throw
而不是
throw(ex)
,因为这将丢失堆栈跟踪。或者,更好的做法是,不要捕获您不打算处理的异常。@DanielKelley。谢谢就这样!将其作为答案发布,以便我可以将其作为所选答案。您应该只使用
throw
而不是
throw(ex)
,因为这将丢失堆栈跟踪。或者,更好的做法是,不要捕获您不打算处理的异常。@DanielKelley。谢谢就这样!将其作为答案发布,以便我可以将其作为所选答案。我不理解为什么我不能引发异常,因此一个类可以访问我创建的自定义表单以显示异常详细信息,它使用此表单显示详细信息。由于某种原因,向主类抛出异常的类不能使用我提到的这种形式,因为存在问题的重复关系。有道理?再次感谢。我不明白为什么我不能抛出异常,所以一个类可以访问我创建的自定义表单来显示异常详细信息,它使用此表单来显示详细信息。由于某种原因,向主类抛出异常的类不能使用我提到的这种形式,因为存在问题的重复关系。有道理?再次感谢。我不明白为什么我不能抛出异常,所以一个类可以访问我创建的自定义表单来显示异常详细信息,它使用此表单来显示详细信息。由于某种原因,向主类抛出异常的类不能使用我提到的这种形式,因为存在问题的重复关系。有道理?再次感谢。我不明白为什么我不能抛出异常,所以一个类可以访问我创建的自定义表单来显示异常详细信息,它使用此表单来显示详细信息。由于某种原因,向主类抛出异常的类不能使用我提到的这种形式,因为存在问题的重复关系。有道理?再次感谢。