Rumah > Artikel > pembangunan bahagian belakang > Apakah kaedah menangkap dan mengendalikan pengecualian dalam Python?
Pengecualian Python ialah ralat yang berlaku semasa pelaksanaan program dan boleh menyebabkan program ditamatkan.
Dalam Python, pengendalian pengecualian ialah mekanisme yang membenarkan pembangun menangkap, mengendalikan dan melaporkan pengecualian apabila ia berlaku dalam atur cara supaya atur cara boleh terus berjalan atau keluar dengan anggun apabila pengecualian berlaku.
Dalam Python, pengecualian boleh menjadi pengecualian standard (seperti SyntaxError dan TypeError) atau pengecualian tersuai. Pengecualian standard ditakrifkan secara dalaman oleh Python, manakala pengecualian tersuai ditakrifkan oleh pembangun, biasanya untuk aplikasi atau perpustakaan tertentu.
Berikut ialah beberapa pengecualian Python biasa:
SyntaxError: Ralat sintaks, biasanya disebabkan oleh ralat sintaks, seperti kurungan hilang dan titik bertindih menunggu .
TypeError: Ralat taip, biasanya disebabkan oleh menggabungkan objek pelbagai jenis bersama-sama, seperti menambah rentetan dan nombor.
ValueError: Ralat nilai, biasanya disebabkan oleh nilai yang dibekalkan tidak mematuhi julat atau format yang dijangkakan, seperti rentetan yang tidak sah apabila menukar rentetan kepada integer.
IndexError: Ralat indeks, biasanya disebabkan oleh percubaan untuk mengakses elemen yang tidak wujud dalam senarai atau tupel.
KeyError: Ralat kunci, biasanya disebabkan oleh cubaan mengakses kunci yang tidak wujud dalam kamus.
IOError: Ralat input/output, biasanya disebabkan oleh masalah semasa cuba membaca atau menulis fail.
AttributeError: Ralat atribut, biasanya disebabkan oleh percubaan untuk mengakses sifat atau kaedah yang tidak wujud pada objek.
Dalam Python, anda boleh menggunakan pernyataan cuba-kecuali untuk menangkap pengecualian dan mengendalikannya. Pernyataan cuba mengandungi kod yang boleh menyebabkan pengecualian, manakala pernyataan kecuali mentakrifkan kod yang akan dilaksanakan apabila pengecualian ditangkap.
Anda boleh menggunakan berbilang kecuali pernyataan untuk menangkap pelbagai jenis pengecualian Try-except juga boleh digandingkan dengan else. Maksudnya ialah apabila pernyataan cuba tidak mengesan sebarang pengecualian, pernyataan else akan dilaksanakan. kandungan. Selain itu, anda juga boleh menggunakan pernyataan akhirnya untuk menentukan kod yang akan sentiasa dilaksanakan selepas blok pernyataan cuba.
Contoh:
Kes 1: Gunakan pernyataan cuba-kecuali untuk menangkap pengecualian dan mengendalikannya
Contoh:
cuba:
100/0 # Kod yang boleh menyebabkan pengecualian
except ZeroDivisionError: #(捕获特定的异常类型ZeroDivisionError,ZeroDivisionError是Python中的内置异常类之一,用于表示在除数为零的情况下进行了除法操作所引发的异常。) print('因为这里打印出异常类型:除数不能为0。')# 处理值错误的代码
Kes 2: Gunakan try- The kecuali pernyataan dipasangkan dengan pernyataan else (apabila pernyataan cuba tidak mengesan sebarang pengecualian, kandungan pernyataan else dilaksanakan)
Apabila pernyataan cuba mengesan sebarang pengecualian, pernyataan else tidak dilaksanakan. Kandungan
>>> try: ... 1 / 0 ... except: ... print("逮到了~") ... else: ... print("没逮到~") ...
Tertangkap~
Jika pengecualian dikesan dalam pernyataan cuba, maka kandungan pengendalian pengecualian pernyataan kecuali dilaksanakan:
rreeeTidak ditangkap~
Kes 3: Gunakan pernyataan cuba-kecuali dengan pernyataan akhir (pernyataan akhir yang mesti dilaksanakan tanpa mengira sama ada pengecualian berlaku atau tidak)
Contoh:
cuba:
‘abc’+ 123
>>> try: ... 1 / 1 ... except: ... print("逮到了~") ... else: ... print("没逮到~") ... 1.0
Pengendalian pengecualian ialah salah satu konsep penting dalam Python yang dibangunkan harus tahu cara Menangkap dan mengendalikan pengecualian dengan betul untuk memastikan kestabilan dan kebolehpercayaan program.
Lanjutan: Kaedah menangkap pengecualian
Dua kaedah menangkap pengecualian: Tidak kira apa jenis pengecualian itu, tangkap maklumat pengecualian.
1 Gunakan Pengecualian: Semua pengecualian adalah subkelas Pengecualian. Jadi Exception boleh memadankan semua jenis pengecualian.
Contoh:
except TypeError: #TypeError为类型错误,通常是由于将不同类型的对象组合在一起而引起的,如将字符串和数字相加。 print('因为这里打印出异常类型:类型错误。')# 处理类型错误的代码 finally: print('不论是否无法异常,都执行这句话') # 无论是否发生异常都会执行的代码
boleh menangkap punca pengecualian seperti biasa, tetapi tidak boleh mengeluarkan maklumat pengecualian terperinci (lokasi pengecualian dihantar dan kod pengecualian).
2 Gunakan modul jejak balik: Gunakan fungsi format_exc dalam modul jejak balik untuk memaparkan maklumat pengecualian dan maklumat timbunan panggilan fungsi di mana pengecualian berlaku.
Contoh:
>>> try: 100/0 except Exception as e: print('未知异常:', e) # 对于很多刚学Python或者是学着学着迷茫了的小伙伴,我给大家准备了一套Python的学习资料。 # 包括数百本电子书、Python基础视频教程、项目实战,疑难解答,直接在文末名片自取。 未知异常: division by zero >>>
Kod di atas akan mencetak maklumat tindanan panggilan fungsi terperinci yang menyebabkan pengecualian
Atas ialah kandungan terperinci Apakah kaedah menangkap dan mengendalikan pengecualian dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!