Dalam usaha anda untuk menentukan kehadiran imej pada skrin menggunakan PyAutoGUI, anda telah mencipta fungsi yang mencetuskan amaran daripada PyCharm. Sumber amaran ini terletak pada kenyataan 'kecuali' yang terdedah.
'kecuali' yang tidak layak berfungsi sebagai penanda semua pengecualian, termasuk mereka yang anda mungkin tidak berniat untuk mengendalikan. Ini boleh termasuk pengecualian kritikal seperti KeyboardInterrupt, SystemExit dan ralat lain yang ditimbulkan oleh Python.
Untuk mengurangkan potensi isu ini, anda dinasihatkan untuk menentukan jenis pengecualian yang anda jangkakan akan dihadapi. Dalam kes anda, PyAutoGUI mentakrifkan ImageNotFoundException khusus untuk situasi di mana imej tiada. Dengan menggunakan:
def check_image_on_screen(image): try: pyautogui.locateCenterOnScreen(image) return True except pyautogui.ImageNotFoundException: return False
anda memperhalusi pengendalian pengecualian anda untuk menyasarkan keadaan kegagalan yang dijangkakan.
Adalah penting untuk ambil perhatian bahawa blok pengecualian harus dikhaskan untuk mengendalikan senario kegagalan yang diketahui dan boleh dipulihkan. Jika ralat yang tidak diketahui atau tidak dapat dipulihkan berlaku, adalah lebih baik untuk membenarkannya menyebarkan timbunan panggilan. Dalam kes sedemikian, gelagat lalai penterjemah Python adalah untuk ditamatkan dengan pengecualian yang tidak ditangkap.
Dengan menangkap pengecualian tertentu secara selektif, anda memastikan fungsi anda boleh pulih dengan anggun daripada ralat yang dijangkakan, sambil membenarkan isu yang lebih teruk dicetuskan respons yang sesuai.
Atas ialah kandungan terperinci Mengapa Pernyataan `kecuali` Bare dalam Python Berisiko, dan Bagaimana Anda Boleh Mengendalikan Pengecualian dengan Lebih Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!