Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah pengendalian pengecualian dalam Python?

Apakah pengendalian pengecualian dalam Python?

王林
王林asal
2023-06-03 18:40:332609semak imbas

Pengendalian pengecualian dalam Python bermakna apabila menjalankan atur cara, jika ralat berlaku (seperti membahagi dengan sifar, fail tidak wujud, dsb.) menyebabkan atur cara ditamatkan atau pengecualian berlaku, atur cara secara automatik akan melompat ke blok kod pengendalian pengecualian dan lakukan pemprosesan yang sepadan supaya atur cara tidak ditamatkan secara langsung.

Pengendalian pengecualian adalah sangat penting Ia boleh membantu pengaturcara mengeluarkan maklumat ralat, dan ia boleh membantu kami mencari lokasi ralat, mengurangkan kadar ralat program dan meningkatkan kestabilan dan kebolehselenggaraan atur cara.

Pengendalian pengecualian dalam Python terutamanya termasuk kata kunci berikut: cuba, kecuali, akhirnya dan naikkan. Penggunaan dan fungsinya diperkenalkan di bawah:

1 kecuali cuba

Pernyataan cuba-kecuali boleh menangkap pengecualian dan memprosesnya untuk mengelakkan program daripada terganggu akibat pengecualian. Sintaks adalah seperti berikut:

try:
    #代码块
except [异常类型]:
    #异常处理代码块

Blok kod di bawah pernyataan cuba ialah blok kod yang akan dilaksanakan Jika pengecualian berlaku, ia akan melompat ke blok kecuali untuk pengendalian pengecualian. Jika tiada pengecualian berlaku, kod dalam blok kecuali dilangkau.

Apabila kecuali diikuti oleh jenis pengecualian tertentu, kod dalam blok kecuali akan dilaksanakan hanya apabila pengecualian jenis itu ditangkap apabila kecuali tidak diikuti oleh mana-mana jenis pengecualian, ia akan ditangkap Semua tidak normal.

Contoh diberikan di bawah:

try:
    a = 5 / 0  # 这里会抛出一个ZeroDivisionError异常
except ZeroDivisionError:
    print("除数不能为零")

Penjelasan: Program di atas akan membuang pengecualian ZeroDivisionError apabila melaksanakan 5/0, tetapi disebabkan penggunaan pernyataan try-except, program akan bukan Ia ranap, tetapi mengeluarkan ayat "Pembahagi tidak boleh sifar".

2.akhirnya

akhirnya ialah blok kod pilihan Tidak kira sama ada terdapat pengecualian dalam blok cuba, kod dalam blok akhirnya akan dilaksanakan. Contohnya:

try:
    # 代码块
except:
    # 异常处理代码块
finally:
    # finally块

Dalam program di atas, jika pengecualian berlaku dalam blok cuba, blok kecuali akan dilaksanakan untuk pengendalian pengecualian, jika tiada pengecualian berlaku, kod dalam blok akhirnya juga akan dilaksanakan. Jika penyataan seperti return, break, atau continue muncul dalam blok akhirnya, nilai dalam akhirnya akan dikembalikan.

Contoh diberikan di bawah:

try:
    f = open('filename.txt', 'r')
    lines = f.readlines()
    result = ""
    for line in lines:
        result += line
except IOError:
    print("文件读取出错")
finally:
    print("关闭文件")
    f.close()

Penjelasan: Program di atas menggunakan try-except untuk membaca fail Jika ralat membaca berlaku, kod dalam blok except akan dilaksanakan tanpa mengira sama ada Jika pengecualian berlaku, kod dalam blok akhirnya akan dilaksanakan untuk memastikan fail ditutup dengan betul.

3.raise

Pernyataan kenaikan digunakan untuk membuang pengecualian secara manual. Contohnya:

x = 10
if x > 5:
    raise Exception('x不能大于5。x的值为:{}'.format(x))

Dalam atur cara di atas, apabila nilai x lebih besar daripada 5, atur cara akan membuang pengecualian jenis Pengecualian secara manual Selepas pengecualian dilemparkan, atur cara akan melompat ke blok kecuali untuk pengendalian pengecualian.

4.try-except-else

Kod dalam blok else dalam pernyataan try-except-else hanya akan dilaksanakan apabila tiada pengecualian dilemparkan dalam blok try. Contohnya:

try:
    x = int(input("请输入一个整数:"))
except ValueError:
    print("无效的输入!")
else:
    print("输入的数字是:", x)

Dalam atur cara di atas, apabila input pengguna bukan integer, pengecualian ValueError akan dilemparkan dan atur cara akan melaksanakan kod dalam blok except Apabila input ialah integer, atur cara akan melaksanakan Kod lain dalam blok yang mengeluarkan nombor yang dimasukkan oleh pengguna.

Ringkasan

Pengendalian pengecualian sangat penting untuk pengaturcara. Ia boleh membantu kami mencari ralat dalam program, mengurangkan kadar ranap program dan meningkatkan kestabilan dan kebolehselenggaraan program. Dalam Python, pernyataan cuba-kecuali boleh membantu kami menangkap pengecualian dan mengendalikannya Blok akhirnya boleh memastikan bahawa kod dalam blok akhirnya akan dilaksanakan dalam apa jua keadaan Pernyataan raise boleh membuang pengecualian secara manual. Sila gunakan kata kunci ini secara munasabah untuk memastikan program anda lebih stabil dan boleh dipercayai.

Atas ialah kandungan terperinci Apakah pengendalian pengecualian dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Apakah sintaks asas Python?Artikel seterusnya:Apakah sintaks asas Python?