Image.FromFile() 中的 OutOfMemoryException 和图像格式有效性
问题:
可以Image.FromFile() 抛出的 OutOfMemoryException 表示图像无效格式?
答案:
过去,.NET 中提供图像操作的 GDI 依赖错误代码进行异常处理。 GDI 中的 OutOfMemory 异常代码通常用于指示各种问题,包括内存不足和无效的图像格式。
但是,当前的 Image.FromFile() 实现不会针对无效的图像格式抛出 OutOfMemoryException。相反,它会抛出一个更具体和直观的异常,例如 FormatException。
问题中的原始代码片段捕获 OutOfMemoryException 并抛出 FormatException,这是用户可以接受的,因为它提供了更多无效图像格式的有意义的错误消息。
历史上下文:
GDI 中对无效图像格式使用 OutOfMemoryException 是 C 的遗留问题,其中异常并未像在 .NET 中那样广泛采用。 GDI 被设计为与 C 兼容,这限制了可以定义的错误代码的数量。 OutOfMemory 错误代码已重载,以处理内存不足和无效图像格式。
当前行为:
在现代 .NET 实现中,Image.FromFile() 会抛出更具体的异常,例如 FormatException,指示无效的图像格式。此行为符合 .NET 中的异常处理最佳实践,并为无效图像提供更多信息丰富的错误消息。
以上是来自'Image.FromFile()”的'OutOfMemoryException”是否总是意味着内存不足?的详细内容。更多信息请关注PHP中文网其他相关文章!