系统.调用方法时的ArgumentOutOfRangeException.我如何找出错误发生的地方?
本文关键字:错误 何找出 方法 调用 ArgumentOutOfRangeException 系统 | 更新日期: 2023-09-27 18:11:28
我用Windows窗体设计器设计了一个程序,并添加了按下某个按钮时执行的功能。在执行我的程序并单击所述按钮后,我得到以下错误:
类型为"System"的未处理异常。ArgumentOutOfRangeException"发生在mscorlib.dll中附加信息:索引超出范围。必须非负且小于集合的大小。
奇怪的是,它告诉我错误发生时,我调用的方法;如:
private void btPPTX_Click(object sender, EventArgs e)
{
PptxConverter.Generate();
}
我之前也有同样的错误,但它向我展示了它发生的确切位置(在生成方法内部)。我纠正了我的错误,但现在我甚至不知道从哪里开始找。Generate-Method非常广泛,涉及一整套其他方法,因此很难在这里找到错误或发布整个代码。是否有任何有效的方法来找到错误,或者我必须通过代码逐行找到它?
我使用的是Visual Studio Community 2015
StackTrace是您在方法图(嵌套调用)中调查异常的方法之一:
try
{
PptxConverter.Generate();
}
catch(Exception ex)
{
Console.WriteLine(ex);
}
当你打印异常对象时,你会得到异常消息和堆栈跟踪,这是一个详细的调用层次结构,将你引导到最后一个异常抛出的确切方法(有时带有行号)。
给定一个方法Main,它调用a,调用B,调用C(抛出异常)堆栈跟踪看起来像这样:
/*
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
*/