Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan mekanisme pengendalian pengecualian dalam Python

Bagaimana untuk menggunakan mekanisme pengendalian pengecualian dalam Python

WBOY
WBOYasal
2023-10-19 09:13:41732semak imbas

Bagaimana untuk menggunakan mekanisme pengendalian pengecualian dalam Python

Cara menggunakan mekanisme pengendalian pengecualian dalam Python

Pengendalian pengecualian ialah bahagian yang sangat penting dalam pengaturcaraan Ia boleh membantu kami mengendalikan ralat dengan anggun apabila ralat berlaku dalam atur cara, mengelakkan atur cara daripada ranap dan memberikan maklumat ralat yang sepadan. Python menyediakan mekanisme pengendalian pengecualian yang berkuasa Artikel ini akan memperkenalkan cara menggunakan pengendalian pengecualian dalam Python.

  1. pernyataan cuba-kecuali

Dalam Python, kami menggunakan pernyataan cuba-kecuali untuk mengendalikan pengecualian. Kod yang boleh menyebabkan pengecualian ditulis dalam blok pernyataan cuba, dan kod pengendalian pengecualian ditulis dalam blok pernyataan kecuali. Apabila pengecualian berlaku dalam blok pernyataan cuba, program akan melompat ke blok pernyataan kecuali yang sepadan untuk pelaksanaan.

Di bawah ialah contoh mudah yang menunjukkan cara untuk menangkap pengecualian ralat bahagi dengan sifar.

try:
    num1 = int(input("请输入一个整数:"))
    num2 = int(input("请输入另一个整数:"))
    result = num1 / num2
    print("两数相除的结果是:", result)
except ZeroDivisionError:
    print("除数不能为零")

Dalam contoh ini, kami mendapat input dua integer oleh pengguna melalui fungsi input() dan melaksanakan operasi bahagi. Jika pengguna memasukkan pembahagi 0, pengecualian ZeroDivisionError dinaikkan. Kami menggunakan blok pernyataan kecuali untuk mengendalikan pengecualian ini dan mencetak mesej ralat mesra "Pembahagi tidak boleh sifar".

  1. Berbilang kecuali pernyataan

Blok pernyataan cuba kecuali boleh mempunyai berbilang blok pernyataan kecuali untuk mengendalikan pelbagai jenis pengecualian.

Berikut ialah contoh yang menunjukkan cara mengendalikan ralat pembahagian demi sifar dan pengecualian ralat input.

try:
    num1 = int(input("请输入一个整数:"))
    num2 = int(input("请输入另一个整数:"))
    result = num1 / num2
    print("两数相除的结果是:", result)
except ZeroDivisionError:
    print("除数不能为零")
except ValueError:
    print("请输入有效的整数")

Dalam contoh ini, sebagai tambahan kepada pengecualian ZeroDivisionError, kami juga menambah pengecualian ValueError untuk mengendalikan situasi di mana pengguna memasukkan integer tidak sah. Apabila input pengguna bukan integer, pengecualian ValueError akan dinaikkan Kami menggunakan blok pernyataan kecuali untuk mengendalikan pengecualian ini dan mencetak mesej ralat mesra "Sila masukkan integer yang sah".

  1. Pengecualian jenis menangkap

Selain menyatakan secara langsung jenis pengecualian untuk menangkap pengecualian, kami juga boleh menggunakan kelas Pengecualian umum untuk menangkap semua pengecualian.

Di bawah ialah contoh yang menunjukkan cara menangkap semua pengecualian menggunakan kelas Pengecualian generik.

try:
    num1 = int(input("请输入一个整数:"))
    num2 = int(input("请输入另一个整数:"))
    result = num1 / num2
    print("两数相除的结果是:", result)
except Exception as e:
    print("发生了一个异常:", e)

Dalam contoh ini, kami menggunakan kata kunci sebagai untuk menetapkan objek pengecualian kepada pembolehubah e, ​​dan kemudian mencetak maklumat pengecualian dalam blok pernyataan kecuali. Dengan cara ini anda boleh menangkap semua jenis pengecualian dan mencetak maklumat ralat yang sepadan.

  1. akhirnya blok pernyataan

Selain blok pernyataan cuba-kecuali, Python juga menyediakan blok pernyataan akhirnya. Tidak kira sama ada pengecualian berlaku, kod dalam blok akhirnya akan dilaksanakan. Biasanya, kita boleh meletakkan beberapa kod pembersihan dalam blok pernyataan akhirnya, seperti menutup fail, mengeluarkan sumber, dsb.

Di bawah ialah contoh yang menunjukkan cara menggunakan blok pernyataan akhirnya.

try:
    file = open("test.txt", "r")
    content = file.read()
    print(content)
except FileNotFoundError:
    print("文件不存在")
finally:
    file.close()

Dalam contoh ini, kami cuba membuka fail dan membaca kandungan fail. Jika fail tidak wujud, pengecualian FileNotFoundError dinaikkan. Tidak kira sama ada pengecualian berlaku, kami menggunakan blok pernyataan akhirnya untuk menutup fail dan memastikan sumber dikeluarkan.

Ringkasan:

Mekanisme pengendalian pengecualian Python boleh membantu kami mengendalikan ralat dalam program dengan anggun dan memberikan maklumat ralat yang sepadan. Kita boleh menggunakan pernyataan cuba-kecuali untuk menangkap pengecualian, menggunakan blok pernyataan berbilang kecuali untuk mengendalikan pelbagai jenis pengecualian, menggunakan tangkapan jenis pengecualian untuk menangkap semua pengecualian dan menggunakan blok pernyataan akhirnya untuk mengeluarkan sumber. Penggunaan munasabah mekanisme pengendalian pengecualian boleh menjadikan kod lebih teguh dan boleh dipercayai.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan mekanisme 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