Mengapa Pengendalian Image.FromFile Exception Mungkin Mengelirukan
Masalah:
Dalam percubaan untuk memberikan mesej ralat yang lebih jelas, kod telah ditulis untuk menangkap OutOfMemoryException yang dilemparkan oleh Image.FromFile dan buang semula sebagai FormatException dengan mesej tersuai. Walau bagaimanapun, kebimbangan telah timbul mengenai kesahihan pendekatan ini.
Jawapan:
OutOfMemoryException yang dilemparkan oleh Image.FromFile tidak bertujuan untuk menunjukkan isu peruntukan memori. Sebaliknya, ia adalah kod ralat warisan yang digunakan oleh pustaka GDI untuk mengendalikan pelbagai ralat, termasuk format imej yang tidak sah.
Pustaka GDI, yang mendasari Image.FromFile, telah dibangunkan sebelum kemunculan . NET dan sistem pengendalian pengecualian yang mantap. Akibatnya, GDI bergantung pada set kod ralat terhad untuk melaporkan masalah. Kod ralat OutOfMemory berfungsi sebagai penampung semua untuk pelbagai isu, termasuk:
Dengan mengatasi OutOfMemoryException, ia menjadi lebih sukar untuk membezakan antara kegagalan peruntukan memori sebenar dan fail imej yang tidak sah. Ini boleh menyebabkan kekeliruan dan pengendalian ralat yang salah.
Oleh itu, adalah disyorkan untuk mengelak daripada mengubah suai gelagat pengendalian pengecualian Image.FromFile. Sebaliknya, adalah lebih baik untuk bergantung pada mekanisme pelaporan ralat lalai untuk memberikan penerangan yang paling tepat tentang isu yang dihadapi.
Atas ialah kandungan terperinci Mengapa Menangkap `OutOfMemoryException` daripada `Image.FromFile` dan Melontar Semula sebagai `FormatException` Mengelirukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!