我使用Windows窗体设计器设计了一个程序,并添加了在按某个按钮时执行的功能。执行我的程序并单击所述按钮后,我收到以下错误:
类型'System.ArgumentOutOfRangeException'的未处理异常 发生在mscorlib.dll中 附加信息:指数超出范围。必须是非负数且小于集合的大小。
奇怪的是它告诉我在调用方法时发生了错误;如:
private void btPPTX_Click(object sender, EventArgs e)
{
PptxConverter.Generate();
}
之前我遇到了同样的错误,但它向我显示了它发生的确切行(Generate-Method内部)。我纠正了我的错误,但现在我甚至不知道从哪里开始寻找。 Generate-Method非常广泛,涉及一整套其他方法,因此很难找到错误或在此处发布整个代码。
是否有任何有效的方法可以找到错误,或者我必须逐行查看代码?
我正在使用Visual Studio Community 2015
答案 0 :(得分:1)
StackTrace是您在方法图(嵌套调用)中调查异常的方法之一:
try
{
PptxConverter.Generate();
}
catch(Exception ex)
{
Console.WriteLine(ex);
}
当您打印异常对象时,您将获得异常消息和堆栈跟踪,这是一个详细的调用层次结构,它引导您到达抛出最后一个异常的确切方法(有时使用行号)。
给定一个调用A的方法Main调用调用C的B(抛出异常)Stack-trace如下所示:
/*
System.Exception: Some Error Message
at ProjectName.Program.C() in C:\Users\User\Documents\Visual Studio 2015\Proj
ects\ProjectName\ProjectName\Program.cs:line 87
at ProjectName.Program.B() in C:\Users\User\Documents\Visual Studio 2015\Proj
ects\ProjectName\ProjectName\Program.cs:line 82
at ProjectName.Program.A() in C:\Users\User\Documents\Visual Studio 2015\Proj
ects\ProjectName\ProjectName\Program.cs:line 77
at ConsoleTest.Program.Main(String[] args) in C:\Users\User\Documents\Visual
Studio 2015\Projects\ProjectName\ProjectName\Program.cs:line 52
*/