簡體   English   中英

System.ArgumentOutOfRangeException 調用方法時。 如何找出錯誤發生的位置?

[英]System.ArgumentOutOfRangeException when calling Method. How do I find out where the error occurs?

我使用 Windows 窗體設計器設計了一個程序,並添加了在按下某個按鈕時執行的功能。 執行我的程序並單擊所述按鈕后,我收到以下錯誤:

mscorlib.dll 中發生類型為“System.ArgumentOutOfRangeException”的未處理異常附加信息:索引超出范圍。 必須是非負的並且小於集合的大小。

奇怪的是,它告訴我調用方法時發生了錯誤; 如:

private void btPPTX_Click(object sender, EventArgs e)
{
    PptxConverter.Generate();
}

我之前也遇到過同樣的錯誤,但它向​​我顯示了它發生的確切位置(在 Generate-Method 內部)。 我糾正了我的錯誤,但現在我什至不知道從哪里開始尋找。 Generate-Method 非常廣泛,涉及一整套其他方法,因此很難找到錯誤或在此處發布整個代碼。 有什么有效的方法可以找到錯誤還是我必須逐行通過代碼才能找到它?
我正在使用 Visual Studio Community 2015

StackTrace 是調查方法圖中異常(嵌套調用)的方法之一:

try
{
   PptxConverter.Generate();
}
catch(Exception ex)
{
   Console.WriteLine(ex);
}

當您打印異常對象時,您將獲得異常消息和堆棧跟蹤,這是一個詳細的調用層次結構,可引導您找到上次拋出異常的確切方法(有時帶有行號)。

給定一個調用 A 調用 B 調用 C(拋出異常)的方法 Main 堆棧跟蹤如下所示:

/*
    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
*/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM