Mengendalikan Pengecualian dengan Berkesan: Bila Perlu Abaikan vs. Perangkap
Dalam Python, blok try-except menyediakan cara untuk mengendalikan kemungkinan ralat dalam pelaksanaan kod. Walau bagaimanapun, kadangkala ia mungkin tidak perlu atau wajar untuk mengendalikan pengecualian. Dalam kes sedemikian, bagaimanakah anda boleh mengabaikannya dengan berkesan?
Persoalannya timbul: "Apabila hanya bertujuan untuk mengabaikan pengecualian, adakah pendekatan berikut betul?"
try: shutil.rmtree(path) except: pass
The Jawapan: Jenis Pengecualian dan Pertimbangan Pengendalian
Walaupun kod yang diberikan adalah sah dari segi teknikal, adalah penting untuk mempertimbangkan jenis pengecualian yang akan ditangkap. Pernyataan "kecuali:" akan mengendalikan semua pengecualian, termasuk "KeyboardInterrupt" dan "SystemExit," yang diperoleh secara langsung daripada "BaseException" dan bukannya "Exception."
Untuk kawalan yang lebih tepat, pertimbangkan pilihan alternatif ini:
try: doSomething() except Exception: pass
Pendekatan ini akan mengabaikan semua pengecualian yang diperoleh daripada "Pengecualian," seperti "IOError" dan "ValueError."
try: doSomething() except: pass
Pendekatan ini akan mengabaikan semua pengecualian, termasuk yang diperoleh daripada "BaseException." Walau bagaimanapun, ia dianggap amalan buruk untuk menangkap setiap kesilapan selama-lamanya. Sebaliknya, jenis pengecualian khusus harus dikendalikan berdasarkan konteks dan kesannya pada pelaksanaan program.
Sumber Tambahan
Untuk mendapatkan maklumat lanjut, rujuk dokumentasi Python rasmi:
Atas ialah kandungan terperinci Sekiranya Anda Mengabaikan Pengecualian dalam Python: Bilakah `kecuali:` Boleh Diterima dan Bilakah Anda Perlu Lebih Spesifik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!