OutOfMemoryException dalam Image.FromFile: Sengaja atau Tersilap?
Soalan:
Dalam kod yang memintas OutOfMemoryException dan menimbulkan FormatException yang lebih bermaklumat untuk format imej tidak sah, adakah pengendalian ini boleh diterima atau adakah OutOfMemoryException sengaja dilemparkan atas sebab tertentu?
Jawapan:
OutOfMemoryException dalam Image.FromFile ialah artifak sejarah dari pra Pustaka -.NET GDI, yang menggunakan kod ralat terhad. Kod ralat Status.OutOfMemory telah terlebih dimuatkan untuk menampung kedua-dua keletihan memori sebenar dan format imej tidak sah.
Disebabkan lebihan muatan ini, Image.FromFile tidak dapat membezakan antara kekurangan memori dan data imej tidak sah. Oleh itu, OutOfMemoryException secara konsisten dinaikkan untuk format imej yang tidak sah.
Implikasi:
Kod yang memintas OutOfMemoryException dan membuang FormatException untuk format imej yang tidak sah boleh diterima. Pendekatan ini menyediakan mesej pengecualian yang lebih mesra pengguna untuk kes khusus format imej tidak sah.
Kesimpulan:
Penggunaan OutOfMemoryException untuk format imej tidak sah dalam GDI ialah bukan hasil reka bentuk yang disengajakan. Sebaliknya, ini adalah had sistem pengendalian kod ralat warisan. Dengan memintas dan melontar semula pengecualian yang lebih bermaklumat, pembangun boleh meningkatkan pengalaman pengguna apabila menghadapi format imej yang tidak sah.
Atas ialah kandungan terperinci Adakah `OutOfMemoryException` dalam `Image.FromFile` Disengajakan atau Isu Legasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!