Apakah kaedah menangkap dan mengendalikan pengecualian dalam Python?

WBOY
Lepaskan: 2023-05-10 20:19:05
ke hadapan
1696 orang telah melayarinya

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。')# 处理值错误的代码
Salin selepas log masuk

Apakah kaedah menangkap dan mengendalikan pengecualian dalam Python?

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("没逮到~")
...
Salin selepas log masuk

Tertangkap~

Jika pengecualian dikesan dalam pernyataan cuba, maka kandungan pengendalian pengecualian pernyataan kecuali dilaksanakan:

rreee

Tidak 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
Salin selepas log masuk

Apakah kaedah menangkap dan mengendalikan pengecualian dalam Python?

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('不论是否无法异常,都执行这句话') # 无论是否发生异常都会执行的代码
Salin selepas log masuk

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
>>>
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!