


Mengapa Klausa `kecuali` Bare dalam Python Dianggap sebagai Amalan Buruk?
Perils of a Bare 'except'
Dalam mereka bentuk fungsi untuk mengesahkan kehadiran imej pada skrin menggunakan PyAutoGui, anda menggunakan pendekatan berikut:
def check_image_on_screen(image): try: pyautogui.locateCenterOnScreen(image) return True except: return False
Sementara fungsi ini kelihatan berfungsi seperti yang dimaksudkan, PyCharm menandai 'kecuali' kosong sebagai tidak digalakkan. Ini menimbulkan kebimbangan tentang implikasi meninggalkan 'kecuali' tanpa hiasan.
Masalah dengan Bare 'except'
A bare 'except' tanpa pandang bulu memintas semua pengecualian, walaupun yang tidak dijangka atau diingini. Pengecualian seperti KeyboardInterrupt (Ctrl C) dan ralat yang dijana Python seperti SystemExit adalah antara yang tidak sepatutnya dikendalikan dengan cara ini.
Adalah lebih baik untuk menyatakan secara eksplisit jenis pengecualian yang disediakan untuk dikendalikan oleh kod anda , sekurang-kurangnya 'Pengecualian', kelas asas untuk semua pengecualian "biasa".
A Lebih Sesuai Pendekatan
Ralat 'kecuali' blok bertujuan untuk digunakan dalam memulihkan daripada senario kegagalan yang telah ditetapkan. Walau bagaimanapun, secara amnya adalah mustahil untuk pulih sepenuhnya daripada senario kegagalan yang tidak diketahui. Dalam kes sedemikian, adalah lebih baik untuk menamatkan program daripada cuba meneruskan. Ini ialah gelagat lalai penterjemah Python apabila pengecualian tidak dikendalikan.
Adalah bijak untuk hanya memerangkap pengecualian yang anda tahu cara untuk menanganinya. Pengecualian selebihnya harus dibenarkan untuk menyebarkan timbunan panggilan dengan harapan komponen lain dapat mengendalikannya. Dalam kes mengesahkan kehadiran imej, ralat yang dijangkakan (setiap dokumentasi) ialah pyautogui.ImageNotFoundException.
Kod Disemak
Berdasarkan cerapan yang disebutkan di atas, fungsi anda boleh difaktorkan semula untuk menangani kebimbangan yang dibangkitkan oleh 'kecuali' kosong:
def check_image_on_screen(image): try: pyautogui.locateCenterOnScreen(image) return True except pyautogui.ImageNotFoundException: return False
Oleh dengan menyatakan pengecualian khusus yang dimaksudkan untuk dikendalikan oleh fungsi, anda meningkatkan kebolehpercayaan dan kebolehselenggaraan kod anda.
Atas ialah kandungan terperinci Mengapa Klausa `kecuali` Bare dalam Python Dianggap sebagai Amalan Buruk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Menggunakan Python di Terminal Linux ...

Fastapi ...

Memahami Strategi Anti-Crawling of Investing.com Ramai orang sering cuba merangkak data berita dari Investing.com (https://cn.investing.com/news/latest-news) ...
