Python

Pengecualian Python

Pengecualian Python

Pengecualian adalah peristiwa yang timbul semasa pelaksanaan program untuk menghentikan atau mengubah aliran normal program. Kesalahan, misalnya, menimbulkan pengecualian. Seperti bahasa pengaturcaraan lain, Python mengandungi banyak pengecualian terbina dalam. Pengecualian ini ditimbulkan jika terdapat kesalahan semasa program dijalankan. Jenis ralat menentukan pengecualian mana yang akan dikemukakan. Apabila pengecualian berlaku, jurubahasa Python memeriksa sama ada pengecualian itu dikendalikan; jika tidak, ia menghentikan program. Artikel ini menerangkan pengecualian dalam Python melalui pelbagai contoh.

Pengecualian Python terbina dalam

Seperti yang telah dibincangkan sebelumnya, Python mempunyai banyak pengecualian bawaan yang ditimbulkan ketika ralat berlaku semasa pelaksanaan program. Setiap pengecualian berasal dari kelas asas "Pengecualian". Yang berikut merangkumi beberapa pengecualian Python bawaan, bersama dengan penerangan ringkas setiap jenis pengecualian:

Pengecualian Penerangan
Pengecualian Setiap pengecualian berasal dari kelas ini.
Kesalahan Import Pengecualian ini ditimbulkan ketika modul tertentu diimport, dan tidak dijumpai.
Ralat EOF Ini adalah pengecualian akhir fail. Pengecualian ini berlaku apabila akhir fail dicapai.
Ralat ZeroDivision Pengecualian ini dibangkitkan apabila nombor dibahagi dengan sifar.
Kesalahan Utama Pengecualian ini dibangkitkan jika kunci tertentu yang tidak ditentukan dalam kamus ditentukan atau digunakan.
Kesalahan Indeks Pengecualian ini ditimbulkan ketika akses ke indeks urutan yang tidak berada dalam jangkauan telah dicuba.
Ralat FloatingPoint Pengecualian ini ditimbulkan apabila operasi floating-point gagal.

Ini adalah beberapa pengecualian bawaan di Python. Sila lawati dokumentasi rasmi untuk maklumat lebih lanjut mengenai penggunaan pengecualian terbina dalam di Python, yang terdapat di https: // docs.ular sawa.org / 3 / perpustakaan / pengecualian.html.

Penggunaan Pengecualian di Python

Pengecualian dalam Python dikendalikan menggunakan pernyataan cuba. Bahagian kod yang boleh membuang atau meningkatkan pengecualian dilaksanakan dalam blok percubaan. Di sebelah blok percubaan, blok kecuali dilaksanakan untuk menangani pengecualian. Di blok kecuali, kami melihat pengecualian dan memutuskan operasi apa yang akan dilakukan apabila kami menemui pengecualian tersebut. Sintaks menulis cubaan dan kecuali blok adalah seperti berikut:

cuba:
menjalankan operasi atau fungsi
kecuali:
fungsi untuk menangani pengecualian

Sekarang, kami akan menerapkan kod ringkas dalam skrip Python kami menggunakan cubaan dan kecuali blok.

Di sini, kami akan mencetak pemboleh ubah 'name' yang tidak ditentukan. Ini menimbulkan pengecualian di blok kecuali.

#melaksanakan blok percubaan
cuba:
cetak (nama)
#melaksanakan blok kecuali
kecuali:
cetak ("Pengecualian berlaku")

Pengeluaran

Sekiranya tidak ada pengecualian, maka hanya blok percubaan yang dijalankan. Di blok kecuali, pernyataan dicetak bahawa pengecualian telah berlaku.

Mari kita lihat contoh lain di mana kita menentukan pemboleh ubah nama:

#menentukan pemboleh ubah nama
nama = "Tandakan"
#melaksanakan blok percubaan
cuba:
cetak (nama)
#melaksanakan blok kecuali
kecuali:
cetak ("Pengecualian berlaku")

Pengeluaran

Dalam contoh di atas, blok percubaan dijalankan dan blok kecuali dilangkau kerana program tidak menimbulkan pengecualian. Kami dapat menentukan seberapa banyak kecuali blok dalam program kami yang kami mahukan. Setiap blok kecuali mengendalikan jenis pengecualian tertentu.

#melaksanakan blok percubaan
cuba:
cetak (nama)
#melaksanakan blok kecuali untuk menangkap kesalahan nama
kecuali NameError:
cetak ("Pemboleh ubah tidak ditentukan")
#melaksanakan blok kecuali
kecuali:
cetak ("Ada yang tidak kena selain daripada kesalahan nama")

Pengeluaran

Di Python, Pengecualian adalah kelas asas untuk semua pengecualian. Daripada menulis nama pengecualian tertentu di blok kecuali, kita hanya boleh menulis "Pengecualian" dan menangkap setiap jenis pengecualian dengan cara ini.

#melaksanakan blok percubaan
cuba:
cetak (nama)
#melaksanakan blok kecuali untuk menangkap ralat
kecuali Pengecualian seperti exp:
mencetak (exp.__kelas__)
#melaksanakan blok kecuali
kecuali:
cetak ("Ada yang tidak kena selain daripada kesalahan nama")

Pengeluaran

Pengeluaran.__class__ mengembalikan nama kelas pengecualian.

Begitu juga, mari kita lihat contoh kelas "ZeroDivisionError".

#melaksanakan blok percubaan
cuba:
x = 1/0
cetak (x)
#melaksanakan blok kecuali untuk menangkap ralat
kecuali Pengecualian seperti exp:
mencetak (exp.__kelas__)
#melaksanakan blok kecuali
kecuali:
cetak ("Ada yang tidak kena selain daripada kesalahan nama")

Pengeluaran

Blok yang lain

Blok lain digunakan dengan blok percubaan dan pengecualian. Blok lain mendefinisikan sekeping kod yang dijalankan jika blok percubaan berjaya dilaksanakan dan tidak ada ralat yang berlaku. Kadang kala, anda mungkin perlu mencetak mesej atau melakukan fungsi ketika blok percubaan berjaya dilaksanakan. Atas sebab ini, kita dapat melaksanakan blok lain dengan mencuba dan kecuali blok.

Dalam contoh ini, kami akan melaksanakan blok lain dalam skrip Python kami.

#melaksanakan blok percubaan
cuba:
x = 1/2
cetak (x)
#melaksanakan blok kecuali untuk menangkap ralat
kecuali Pengecualian seperti exp:
mencetak (exp.__kelas__)
#melaksanakan blok yang lain
lain:
cetak ("Semuanya berjalan lancar")

Pengeluaran

Blok lain dilaksanakan berikutan kejayaan pelaksanaan blok percubaan.

Mari kita lihat contoh lain menggunakan blok yang lain.

#melaksanakan blok percubaan
cuba:
nama = "Tandakan"
#melaksanakan blok kecuali untuk menangkap ralat
kecuali Pengecualian seperti exp:
mencetak (exp.__kelas__)
#melaksanakan blok yang lain
lain:
cetak ("Nama adalah:", nama)

Pengeluaran

Dalam contoh di atas, pemboleh ubah nama didefinisikan di dalam blok percubaan dan dicetak di blok yang lain.

Sekatan akhirnya

The akhirnya blok mengandungi potongan kod yang mesti dilaksanakan tanpa mengira sama ada blok percubaan menimbulkan pengecualian. Blok akhirnya adalah pilihan dan dinyatakan dengan blok cubaan. Sebagai contoh, jika kita telah membuka file teks untuk membaca blok coba dan menimbulkan kesalahan atau pengecualian, lebih baik menyertakan file di blok akhirnya, walaupun kesalahan itu terjadi. Mari kita laksanakan blok akhirnya dalam skrip Python kami.

#melaksanakan blok percubaan
cuba:
cetak (my_dict)
#melaksanakan blok kecuali untuk menangkap ralat
kecuali Pengecualian seperti exp:
mencetak (exp.__kelas__)
#melaksanakan blok akhirnya
akhirnya:
cetak ("Inilah blok akhirnya")
cetak ("Blok akhirnya dilaksanakan")

Pengeluaran

Dalam output, dapat dilihat bahawa blok percubaan menimbulkan pengecualian. Walau bagaimanapun, blok akhirnya dilaksanakan pada akhir.

Sekarang, mari kita buka fail teks di blok percubaan, yang menimbulkan pengecualian sementara fail yang dilampirkan pada blok akhirnya.

#melaksanakan blok percubaan
cuba:
fileObj = terbuka ("mistik.xml "," r ")
failObj.cari (-2)
cetak (fileObj.bacaan semula ())
#melaksanakan blok kecuali
kecuali Pengecualian seperti exp:
mencetak (exp.__kelas__)
#melaksanakan blok akhirnya
akhirnya:
failObj.tutup ()
cetak ("Fail berjaya ditutup")

Pengeluaran

Seperti yang anda lihat, tanpa mengira ralat nilai, fail berjaya ditutup di blok akhirnya.

Tingkatkan Pengecualian

Walaupun pengecualian dinaikkan secara automatik apabila berlaku ralat, di Python, anda juga dapat meningkatkan pengecualian secara manual. The menaikkan kata kunci digunakan untuk menaikkan atau membuang pengecualian.

Kami sekarang akan meningkatkan beberapa pengecualian menggunakan kata kunci kenaikan. Dalam contoh berikut, syarat if dilaksanakan untuk memeriksa nombor bukan negatif. Sekiranya ada nombor bukan negatif, maka pengecualian "Nombor bukan negatif tidak dibenarkan" akan dibangkitkan.

#menyatakan dua pemboleh ubah nombor
num1 = 20
num2 = -10
jika ((bilangan1<0) | (num2<0)):
tingkatkan Pengecualian ("Nombor bukan negatif tidak dibenarkan")
lain:
cetak (num1 + num2)

Pengeluaran

Kesimpulannya

Pengecualian berlaku sebagai tindak balas terhadap ralat semasa menjalankan. Di Python, kita dapat menangani pengecualian dengan menggunakan cubaan dan kecuali blok. Artikel ini menerangkan cara menggunakan pengecualian di Python melalui pelbagai contoh.

5 Permainan Arcade Terbaik untuk Linux
Pada masa kini, komputer adalah mesin serius yang digunakan untuk permainan. Sekiranya anda tidak dapat memperoleh skor tinggi baru, anda akan tahu ma...
Battle For Wesnoth 1.13.6 Pembangunan Dikeluarkan
Battle For Wesnoth 1.13.6 dilancarkan bulan lalu, adalah rilis pengembangan keenam di 1.13.siri x dan memberikan sejumlah penambahbaikan, terutamanya ...
Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...