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