Rumah pembangunan bahagian belakang Tutorial Python Apakah kaedah menangkap dan mengendalikan pengecualian dalam Python?

Apakah kaedah menangkap dan mengendalikan pengecualian dalam Python?

May 10, 2023 pm 08:19 PM
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。')# 处理值错误的代码
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!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Muat turun DeepSeek Xiaomi Cara Muat turun DeepSeek Xiaomi Feb 19, 2025 pm 05:27 PM

Cara Muat turun DeepSeek Xiaomi

Apakah kelebihan dan kekurangan templat? Apakah kelebihan dan kekurangan templat? May 08, 2024 pm 03:51 PM

Apakah kelebihan dan kekurangan templat?

Google AI mengumumkan Gemini 1.5 Pro dan Gemma 2 untuk pembangun Google AI mengumumkan Gemini 1.5 Pro dan Gemma 2 untuk pembangun Jul 01, 2024 am 07:22 AM

Google AI mengumumkan Gemini 1.5 Pro dan Gemma 2 untuk pembangun

Dengan hanya $250, pengarah teknikal Hugging Face mengajar anda cara memperhalusi Llama 3 Dengan hanya $250, pengarah teknikal Hugging Face mengajar anda cara memperhalusi Llama 3 May 06, 2024 pm 03:52 PM

Dengan hanya $250, pengarah teknikal Hugging Face mengajar anda cara memperhalusi Llama 3

Panduan lengkap untuk penyahpepijatan dan analisis fungsi golang Panduan lengkap untuk penyahpepijatan dan analisis fungsi golang May 06, 2024 pm 02:00 PM

Panduan lengkap untuk penyahpepijatan dan analisis fungsi golang

Kongsi beberapa rangka kerja projek berkaitan AI dan LLM sumber terbuka .NET Kongsi beberapa rangka kerja projek berkaitan AI dan LLM sumber terbuka .NET May 06, 2024 pm 04:43 PM

Kongsi beberapa rangka kerja projek berkaitan AI dan LLM sumber terbuka .NET

Bagaimana anda bertanya kepadanya Deepseek Bagaimana anda bertanya kepadanya Deepseek Feb 19, 2025 pm 04:42 PM

Bagaimana anda bertanya kepadanya Deepseek

Apakah perisian NET40? Apakah perisian NET40? May 10, 2024 am 01:12 AM

Apakah perisian NET40?

See all articles