Image.FromFile の OutOfMemoryException: 意図的か間違いですか?
質問:
コード内OutOfMemoryException をインターセプトし、より有益な情報を生成します。無効な画像形式に対する FormatException は、この処理は許容されますか、それとも OutOfMemoryException は何らかの理由で意図的にスローされますか?
回答:
Image.FromFile の OutOfMemoryException は、からの歴史的な成果物です。 .NET GDI 以前のライブラリでは、限定されたエラー コードが使用されていました。実際のメモリ不足と無効な画像形式の両方をカバーするために、Status.OutOfMemory エラー コードがオーバーロードされました。
このオーバーロードのため、Image.FromFile はメモリ不足と無効な画像データを区別できません。そのため、無効な画像形式に対して OutOfMemoryException が常に発生します。
影響:
OutOfMemoryException をインターセプトし、無効な画像形式に対して FormatException をスローするコードは許容されます。このアプローチでは、無効な画像形式の特定のケースに対して、よりユーザー フレンドリーな例外メッセージが提供されます。
結論:
GDI での無効な画像形式に対する OutOfMemoryException の使用は、次のとおりです。意図的な設計の結果ではありません。むしろ、これは従来のエラー コード処理システムの制限です。開発者は、より有益な例外をインターセプトして再スローすることで、無効な画像形式に遭遇したときのユーザー エクスペリエンスを向上させることができます。
以上が「Image.FromFile」の「OutOfMemoryException」は意図的なものですか、それともレガシーな問題ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。