1.pythonmekanisme pengendalian pengecualian
Mekanisme pengendalian pengecualian dalam
Pythonterutamanya terdiri daripada bahagian berikut:
- Pengecualian: Pengecualian ialah peristiwa ralat yang mungkin berlaku semasa program berjalan, yang boleh dibahagikan kepada ralat sintaks, ralat masa jalan, ralat logik, dsb.
- Jenis pengecualian: Terdapat beberapa jenis pengecualian yang ditakrifkan dalam Python, dan setiap jenis pengecualian mewakili ralat tertentu. Contohnya,
SyntaxError
表示语法错误,IndexError
表示索引错误,ValueError
bermaksud ralat sintaks, bermaksud
- indeks
ralat,
- bermaksud ralat nilai, dsb.
try-except
、try-finally
、try-else
Objek pengecualian: Apabila pengecualian berlaku, Python akan mencipta objek pengecualian, yang mengandungi maklumat terperinci tentang pengecualian, seperti jenis pengecualian, maklumat pengecualian, lokasi pengecualian berlaku, dsb.
Pernyataan pengendalian pengecualian: Python menyediakan pelbagai pernyataan pengendalian pengecualian, seperti
, dsb., yang boleh menangkap dan mengendalikan pengecualian.
2. Pengecualian biasa Python
SyntaxError
Dalam Python, pengecualian yang paling biasa termasuk:
IndexError
: Ralat sintaks, biasanya disebabkan oleh ralat sintaks dalam kod.
- : Ralat indeks, biasanya disebabkan oleh pengindeksan luar sempadan jujukan seperti senarai, tupel atau
ValueError
rentetan .
TypeError
: Ralat nilai, biasanya disebabkan oleh nilai parameter atau jenis data yang salah.
NameError
: Ralat taip, biasanya disebabkan oleh menggunakan objek dengan jenis data yang tidak serasi.
ZeroDivisionError
: Ralat nama, biasanya disebabkan oleh penggunaan pembolehubah atau fungsi yang tidak ditentukan.
ZeroDivis
io
nError: Pembahagian dengan ralat sifar, biasanya disebabkan oleh cubaan membahagikan nombor dengan sifar.
- 3. Amalan pengendalian pengecualian Python
Yang berikut menunjukkan cara mengendalikan pengecualian Python biasa melalui contoh yang kaya:
Pengendalian pengecualian asas:
try: # 可能会引发异常的代码 print(1 / 0) except ZeroDivisionError: print("除数不能为零")
Salin selepas log masuk
else
Tangkap pelbagai pengecualian:
try: # 可能会引发多个异常的代码 print(1 / 0) print(list[100]) except (ZeroDivisionError, IndexError): print("除数不能为零或索引越界")
Salin selepas log masuk
- Gunakan klausa
finally
:
try: # 可能会引发异常的代码 print(1 / 1) except ZeroDivisionError: print("除数不能为零") else: print("除法运算成功")
Salin selepas log masuk
- Gunakan klausa
:
try: # 可能会引发异常的代码 print(1 / 1) finally: print("无论是否发生异常,都会执行该代码")
Salin selepas log masuk
Pengecualian tersuai:
class MyError(Exception): def __init__(self, message): self.message = message try: # 可能会引发自定义异常的代码 if x < 0: raise MyError("x 不能小于 0") except MyError as e: print(e.message)
Salin selepas log masuk
4. Kesimpulan Pengendalian pengecualian Python ialah bahagian penting dalam pengaturcaraan Saya harap artikel ini dapat membantu pembaca memahami dengan mendalam mekanisme pengendalian pengecualian dalam Python dan menguasai cara menangani ralat biasa. Melalui latihan, pembaca boleh menjadi mahir dalam menggunakan pernyataan pengendalian pengecualian dan menulis program Python yang lebih mantap.
Atas ialah kandungan terperinci Panduan praktikal Python untuk pengendalian pengecualian, menyelesaikan ralat biasa tidak lagi sukar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!