Saya bekerja dengan GDAL dengan Python dan ingin mendapatkan GDAL untuk meningkatkan pengecualian sehingga saya dapat melakukan sesuatu yang berguna dengan mereka. Sebagai contoh jika file tidak dapat dibuka dengan gdal.Open () Saya ingin melempar pengecualian daripada mengembalikan gdal Tidak ada. Saya hanya ingin cara untuk menangkap kesalahan daripada dibuang ke sys.stdout.
Saat ini saya telah mencoba menggunakan gdal.UseExceptions()
fungsi tetapi menemukan masalah. Ketika gdal.UseExceptions()
diatur tampaknya menyembunyikan kesalahan tertentu dan tidak memunculkan pengecualian pada mereka. Misalnya ERROR 5: Access window out of range in RasterIO() Requested (1,15) of size 25x3 on raster of 26x17
menghilang dan tidak ada pengecualian yang dimunculkan. Ini sepertinya cukup berbahaya.
Ada ide yang dihargai, terima kasih.
Jawaban:
Handler UseExceptions tidak mendengarkan apa pun selain CE_Error, atau CE_Fatal. Apa yang Anda lihat mungkin adalah pesan CE_Warning atau CE_Debug (periksa nilai kembalinya panggilan fungsional Anda untuk melihat apa artinya itu).
Kompromi ini dibuat untuk memastikan bahwa binding python "baru" berperilaku serupa dengan binding python "lama" (yang digulung dengan semua penanganan kesalahan dari tipe check-the-return). Saya setuju ini menyebalkan.
Jangan ragu untuk mengajukan tiket sehingga kami dapat menambahkan level untuk penangan pengecualian untuk didengarkan, ala
sumber