3 回答
TA贡献1841条经验 获得超3个赞
嗯,这是一个很好的例子,说明异常并不总是意味着什么。 这个特殊情况(OutOfMemoryException对于一个无效的文件)可以追溯到.Net 1.0,它有一组更有限的异常类型,这个库的程序员可以从中选择。我认为从那以后它没有被改变以保持向后兼容性(又名“在糟糕的情况下抛出好钱”)。
公平地说,我认为这是他们本可以做出的异常类型最糟糕的选择。当你打开一个文件,它碰巧很大,并且你得到了一个文件时,OutOfMemoryException假设你实际上已经没有内存并且在错误的树上咆哮一段时间是合乎逻辑的(在StackOverflow上有关于这个问题的不止一个问题) 。
TA贡献1784条经验 获得超2个赞
这是一个误导性的例外。微软说:
当您尝试在.NET Framework 1.0中使用Bitmap.FromFile方法时收到“System.OutOfMemoryException”错误消息
使用Bitmap.FromFile方法时,可能会出现此问题,并且满足下列条件之一:
图像文件已损坏。
图像文件不完整。
注意如果您的应用程序尝试在未完成写入文件的文件流上使用Bitmap.FromFile方法,则可能会遇到此问题。*图像文件没有有效的图像格式,或者GDI +不支持文件的像素格式。*该程序无权访问该图像文件。* BackgroundImage属性直接从Bitmap.FromFile方法设置。
(位图来自Image)
当然,当您尝试加载太大的图像时,也可能会出现此异常。所以你需要考虑这一点。
- 3 回答
- 0 关注
- 1004 浏览
添加回答
举报