2011-04-14 176 views
0

什麼意思與異常的類型?神祕InvalidOperationException

「撤消操作遇到的上下文是從什麼是在相應的設置操作中施加不同的。」

我花了5個多小時試圖找到其中的例外出現((

更新

對不起,misinformation..i發現mistake..but無法弄清楚如何出現這種情況

在主線程中創建工作線程,創建新窗體並調用form.showDialog .. 調用form.Close應用程序後死:((

+1

這將真正幫助,如果你想解釋一下其中的例外是從哪裏來...你正在使用的技術,代碼是什麼樣子,堆棧跟蹤是什麼樣子等等 – 2011-04-14 11:59:25

+1

如果你花5小時試圖找到一個解決方案,你應該花費超過1分鐘措辭你的問題。沒有人能夠幫助你完成你寫的內容。給出代碼示例並告訴我們你在做什麼! – Christian 2011-04-14 11:59:36

+0

我正在使用.net 4.0 framewwork 我無法找到確切的異常出現在哪裏因爲我只捕獲異常'未處理' 沒有任何代碼行或e.t.c信息 – void 2011-04-14 12:00:03

回答

0

例外是一種消息,通知發生了什麼壞事情pened。它通常有關於不好的情況的額外信息。

這就像從水錶面下來的氣泡。如果沒有人catch,那麼它顯示給你(這裏的名字是unhandled exception)。

你應該避免unhandled exception在你的代碼,想想所有壞的情況,併爲他們做點什麼。例如,如果您的程序要在CD上寫入內容並且CD-ROM中沒有CD,則應該向用戶顯示一條消息,並告訴他將CD放入CD-ROM中。這將是像這樣在你的代碼:

try 
{ 
    // Copy file to CD 
    // Show message: File Copied successfully 
} 
catch (Exception ex) 
{ 
    // Something wrong happened: there's no CD in CD-ROM, CD has not enough space... 
    // Show message: Cannot copy file! 
} 

在上面的例子ex的類型爲Exception,並且具有對惡劣的情況下一些細節。當你看到行// Copy file to CD後,我嘗試向用戶顯示一條成功消息。這是因爲我們一旦失敗,行// Copy file to CD程序將從catch部分恢復,因爲我們已經得到了不好的情況並且有一些關於它的信息。如果您沒有在上面的例子中使用try/catch,並在另一個代碼中使用它,在你必須得到exception那裏成爲unhandled exception前的機會。

+0

我知道如何使用try/catch語句,但我無法找到可能出現例外情況的代碼和平例如,如果我打包運行另一個線程的try/catch代碼,並在另一個trhead中拋出異常try/cathc不會幫助我( – void 2011-04-14 12:15:10

+0

)執行錯誤代碼的線程拋出異常如果您需要了解它另一個線程你應該使用一個共享對象,並告訴另一個線程發生了錯誤。 – Xaqron 2011-04-14 12:18:08