Python

Pengendalian Pengecualian di Python

Pengendalian Pengecualian di Python
Apabila kita menjalankan kod yang mengandungi ralat maka kesalahan akan muncul dalam output dengan menghentikan pelaksanaan program. Sebilangan kesalahan mungkin tidak dikenali oleh pengguna dan menimbulkan situasi yang tidak diingini bagi mereka. Tetapi sekiranya kesalahan dapat ditunjukkan dalam format yang dapat difahami oleh pengguna, maka mudah bagi mereka untuk mengetahui sebab kesalahan tersebut. Dalam pengaturcaraan berorientasikan objek, cuba tangkap atau cuba-tangkap-akhirnya blok digunakan untuk menangani kesalahan dan menampilkannya dalam format yang dapat dibaca yang disebut pengendalian pengecualian. Bagaimana pengendalian pengecualian dapat dilakukan dalam skrip Python ditunjukkan dalam tutorial ini.

Sintaks:

cuba:
sekat…
kecuali Pengecualian:
pengendali ..
lain:
sekat…
akhirnya:
sekat…

Di sini, jika ada kesalahan berlaku semasa melaksanakan penyataan cuba blok maka pengecualian akan dihasilkan dan membuang kesalahan ke yang sesuai kecuali penangan. Banyak kesalahan boleh dihasilkan dalam satu cuba blok dan kemudian anda perlu menulis berganda kecuali pengendali.  Pernyataan dari yang lain blok akan dilaksanakan jika tidak ada kesalahan berlaku di cuba sekatan. Pernyataan dari akhirnya blok akan dilaksanakan sekiranya ada kesalahan berlaku atau tidak berlaku. Untuk pengendalian pengecualian, menggunakan yang lain dan akhirnya blok tidak mustahak. Pelbagai jenis pengendalian pengecualian dalam python dijelaskan di bahagian seterusnya dari tutorial.

Contoh-1: Penggunaan satu blok kecuali percubaan untuk mengesahkan data berangka:

Contoh ini menunjukkan penggunaan pengendalian pengecualian yang sangat mudah di Python. Di dalam cuba blok, dua input akan diambil dari pengguna, satu adalah nilai rentetan dan satu lagi adalah nilai berangka.  Sekiranya pengguna menaip sebarang nilai rentetan sebagai ganti nilai angka untuk input kedua, maka Kesalahan Nilai pengecualian akan dihasilkan oleh ular sawa3 dan mesej ralat tersuai akan dipaparkan dari kecuali sekatan.

#!/ usr / bin / env python3
# Tentukan blok cubaan
cuba:
# Ambil sebarang data sebagai rentetan
name = input ("Masukkan nama anda: \ n")
# Ambil sebarang data berangka
age = int (input ("Masukkan umur anda: \ n"))
# Cetak data yang diformat dengan nama dan umur
cetak ("Hello% s, Anda berumur% s tahun."% (nama, umur))
# menangani ralat input
kecuali (ValueError):
# Cetak mesej ralat tersuai
cetak ("Input salah! Anda mesti menaip nombor mengikut usia anda.")

Pengeluaran:

Skrip dilaksanakan dua kali dalam output berikut dengan input yang salah dan input yang betul. Kali pertama, apabila pengguna menaip 'Tiga puluh satu' sebagai nilai umur untuk input kedua yang mengambil nilai angka maka a Kesalahan Nilai dihasilkan dan mesej ralat dipaparkan dari blok kecuali. Kali kedua, tiada ralat yang dihasilkan untuk nilai input yang betul.

Contoh-2: Penggunaan beberapa kecuali blok untuk menangani banyak kesalahan:

Bagaimana anda boleh menggunakan beberapa kecuali blok untuk menangani banyak kesalahan ditunjukkan dalam contoh ini.  Dua jenis kesalahan akan dikendalikan dalam skrip ini. Nama fail diambil sebagai input dari pengguna untuk membaca. Sekiranya fail tidak ada maka ia akan menghasilkan Ralat IO pengecualian dan jika fail itu ada tetapi kosong maka ia akan menimbulkan pengecualian khusus. Untuk ini, dua kecuali blok digunakan dalam skrip ini. Apabila tiada kesalahan berlaku maka kandungan fail akan dipaparkan.

#!/ usr / bin / env python3
# Modul import os
import os
# Tentukan blok cubaan
cuba:
# Ambil nama fail sebagai input
nama fail = input ('Masukkan nama fail \ n')
# Buka fail untuk dibaca
file_handler = terbuka (nama fail)
# Tetapkan penunjuk carian dari 0 hingga akhir fail
fail_handler.cari (0, os.SEEK_END)
# Baca ukuran fail dalam bait
size = file_handler.beritahu ()
# Cetak kandungan fail dan bilangan watak fail
jika (saiz> 0):
# Tetapkan penimbang ke permulaan fail
fail_handler.mencari (0)
# Baca dan simpan kandungan fail dalam pemboleh ubah
file_content = file_handler.baca ()
cetak ("\ nIsi fail yang diberikan di bawah \ n")
cetak (fail_content)
cetak ("Ukuran fail adalah% d bait" ukuran%)
lain:
# Naikkan pengecualian jika fail kosong
meningkatkan Pengecualian ('Fail tidak mempunyai kandungan.')
# Cetak mesej ralat jika fail tidak ada
kecuali ralat IOError sebagai:
cetak (ralat)
# Cetak mesej ralat jika fail kosong
kecuali Pengecualian sebagai e:
cetak ('Ralat:% s'% e)
# Cetak mesej jika tidak ada kesalahan
lain:
cetak ('Tiada ralat berlaku')

Pengeluaran:

Skrip dilaksanakan selama tiga kali. Kali pertama, nama fail diberikan yang tidak ada dan output menunjukkan mesej IOError. Kali kedua, nama fail diberikan yang ada tetapi tidak mempunyai kandungan dan output menunjukkan mesej tersuai. Kali ketiga, nama fail diberikan yang ada dan mengandungi teks. Keluaran menunjukkan kandungan fail.

Contoh-3: Penggunaan blok cuba-kecuali-akhirnya untuk mengatasi ralat pembahagian

Contohnya menunjukkan penggunaan blok cuba-kecuali-akhirnya untuk mengatasi ralat pembahagian. Dua nilai angka akan diambil sebagai input dan membahagikan input pertama dengan input kedua di blok cubaan. Dua jenis kesalahan boleh berlaku di sini. Satu adalah Kesalahan Nilai apabila pengguna akan menaip sebarang nilai tanpa nombor dan yang lain adalah Ralat ZeroDivision bila pengguna akan mengambil 0 sebagai input kedua.

#!/ usr / bin / env python3
# Tentukan blok cubaan
cuba:
# Masukkan dua nombor terapung
n1 = terapung (masukan ('Masukkan nombor \ n'))
n2 = terapung (masukan ('Masukkan nombor \ n'))
# Bahagikan nombor ini
pembahagian = n1 / n2
# Mengendalikan kesilapan
kecuali (ZeroDivisionError, ValueError):
cetak ("Dibahagi dengan ralat sifar atau Nilai bukan nombor")
# Cetak mesej jika tidak berlaku ralat
lain:
cetak ("Hasil pembahagian adalah% f"% pembahagian)
# Cetak mesej jika berlaku kesalahan atau tidak berlaku
akhirnya:
cetak ("Akhir")

Pengeluaran:

Di sini, skrip dijalankan selama dua kali dengan kedua-dua input yang betul dan dengan input kedua sebagai 0. Jadi, pengecualian kali kedua dihasilkan dan memaparkan mesej ralat.

Kesimpulan:

Tutorial ini menunjukkan proses pengendalian pengecualian asas dalam python3 untuk pengguna python baru. Pembaca akan dapat memahami apa itu pengendalian pengecualian dan cara mengaplikasikannya dalam skrip python setelah mengamalkan contoh di atas.

Cara Menunjukkan Overlay OSD dalam Aplikasi dan Permainan Linux Skrin Penuh
Bermain permainan skrin penuh atau menggunakan aplikasi dalam mod skrin penuh bebas gangguan dapat memisahkan anda dari maklumat sistem yang relevan y...
5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...
Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...