3 回答

TA貢獻1841條經(jīng)驗 獲得超3個贊
嗯,這是一個很好的例子,說明異常并不總是意味著什么。 這個特殊情況(OutOfMemoryException對于一個無效的文件)可以追溯到.Net 1.0,它有一組更有限的異常類型,這個庫的程序員可以從中選擇。我認為從那以后它沒有被改變以保持向后兼容性(又名“在糟糕的情況下拋出好錢”)。
公平地說,我認為這是他們本可以做出的異常類型最糟糕的選擇。當你打開一個文件,它碰巧很大,并且你得到了一個文件時,OutOfMemoryException假設你實際上已經(jīng)沒有內(nèi)存并且在錯誤的樹上咆哮一段時間是合乎邏輯的(在StackOverflow上有關于這個問題的不止一個問題) 。

TA貢獻1784條經(jīng)驗 獲得超2個贊
這是一個誤導性的例外。微軟說:
當您嘗試在.NET Framework 1.0中使用Bitmap.FromFile方法時收到“System.OutOfMemoryException”錯誤消息
使用Bitmap.FromFile方法時,可能會出現(xiàn)此問題,并且滿足下列條件之一:
圖像文件已損壞。
圖像文件不完整。
注意如果您的應用程序嘗試在未完成寫入文件的文件流上使用Bitmap.FromFile方法,則可能會遇到此問題。*圖像文件沒有有效的圖像格式,或者GDI +不支持文件的像素格式。*該程序無權(quán)訪問該圖像文件。* BackgroundImage屬性直接從Bitmap.FromFile方法設置。
(位圖來自Image)
當然,當您嘗試加載太大的圖像時,也可能會出現(xiàn)此異常。所以你需要考慮這一點。
- 3 回答
- 0 關注
- 1037 瀏覽
添加回答
舉報