Python

Pengecualian Python

Pengecualian Python

Pengecualian adalah peristiwa yang muncul selama eksekusi suatu program untuk menghentikan atau mengubah aliran normal suatu program. Kesalahan, misalnya, menimbulkan pengecualian. Seperti bahasa pemrograman lainnya, Python berisi banyak pengecualian bawaan. Pengecualian ini dimunculkan jika terjadi kesalahan saat program dijalankan. Jenis kesalahan menentukan pengecualian mana yang akan dimunculkan. Ketika pengecualian terjadi, interpreter Python memeriksa apakah pengecualian ditangani; jika tidak, itu menghentikan program. Artikel ini menjelaskan pengecualian dalam Python melalui berbagai contoh.

Pengecualian Python bawaan

Seperti yang telah dibahas sebelumnya, Python memiliki banyak pengecualian bawaan yang muncul ketika kesalahan terjadi selama eksekusi program. Setiap pengecualian berasal dari kelas dasar "Pengecualian". Berikut ini termasuk beberapa pengecualian Python bawaan, bersama dengan deskripsi singkat dari setiap jenis pengecualian:

Pengecualian Deskripsi
Pengecualian Setiap pengecualian berasal dari kelas ini.
ImporError Pengecualian ini dimunculkan ketika modul tertentu diimpor, dan tidak ditemukan.
EOFEkesalahan Ini adalah pengecualian akhir file. Pengecualian ini terjadi ketika akhir file tercapai.
ZeroDivisionError Pengecualian ini dimunculkan ketika suatu angka dibagi dengan nol.
Kesalahan Kunci Pengecualian ini dimunculkan jika kunci tertentu yang tidak didefinisikan di dalam kamus ditentukan atau digunakan.
Kesalahan Indeks Pengecualian ini dimunculkan ketika akses ke indeks urutan yang tidak berada dalam kisaran telah dicoba.
FloatingPointError Pengecualian ini dimunculkan ketika operasi floating-point gagal.

Ini adalah beberapa pengecualian bawaan di Python. Silakan kunjungi dokumentasi resmi untuk informasi lebih lanjut tentang menggunakan pengecualian bawaan dengan Python, yang terletak di https://docs.ular piton.org/3/library/exceptions.html.

Penggunaan Pengecualian di Python

Pengecualian dalam Python ditangani menggunakan pernyataan try. Sepotong kode yang dapat melempar atau memunculkan pengecualian diimplementasikan dalam blok coba. Di sebelah blok try, blok exception diimplementasikan untuk menangani exception. Di blok exception, kita menangkap exception dan memutuskan operasi apa yang akan dilakukan ketika kita menemukan exception itu. Sintaks penulisan blok try and exception adalah sebagai berikut:

mencoba:
melakukan operasi atau fungsi
kecuali:
fungsionalitas untuk menangani pengecualian

Sekarang, kami akan mengimplementasikan kode sederhana dalam skrip Python kami menggunakan blok coba dan kecuali.

Di sini, kami akan mencetak variabel 'nama' yang tidak didefinisikan. Ini menimbulkan pengecualian di blok kecuali.

#menerapkan blok coba
mencoba:
cetak (nama)
#menerapkan blok kecuali
kecuali:
print("Terjadi pengecualian")

Keluaran

Jika tidak ada pengecualian yang terjadi, maka hanya blok try yang dieksekusi. Di blok exception, sebuah pernyataan dicetak bahwa eksepsi telah terjadi.

Mari kita lihat contoh lain di mana kita mendefinisikan variabel nama:

#mendefinisikan variabel nama
nama = "Tandai"
#menerapkan blok coba
mencoba:
cetak (nama)
#menerapkan blok kecuali
kecuali:
print("Terjadi pengecualian")

Keluaran

Pada contoh di atas, blok try dieksekusi dan blok exception dilompati karena program tidak memunculkan eksepsi apapun. Kami dapat mendefinisikan sebanyak mungkin kecuali blok dalam program kami seperti yang kami inginkan. Setiap blok kecuali menangani jenis pengecualian tertentu.

#menerapkan blok coba
mencoba:
cetak (nama)
#menerapkan blok kecuali untuk menangkap kesalahan nama
kecuali NameError:
print("Variabel tidak ditentukan")
#menerapkan blok kecuali
kecuali:
print("Ada yang tidak beres selain kesalahan nama")

Keluaran

Dalam Python, Pengecualian adalah kelas dasar untuk semua pengecualian. Alih-alih menulis nama pengecualian tertentu di blok kecuali, kita cukup menulis "Pengecualian" dan menangkap setiap jenis pengecualian dengan cara ini.

#menerapkan blok coba
mencoba:
cetak (nama)
#menerapkan blok kecuali untuk menangkap kesalahan
kecuali Pengecualian sebagai exp:
cetak (exp.__kelas__)
#menerapkan blok kecuali
kecuali:
print("Ada yang tidak beres selain kesalahan nama")

Keluaran

pengalaman.__class__ mengembalikan nama kelas pengecualian.

Demikian pula, mari kita lihat contoh kelas "ZeroDivisionError".

#menerapkan blok coba
mencoba:
x=1/0
cetak (x)
#menerapkan blok kecuali untuk menangkap kesalahan
kecuali Pengecualian sebagai exp:
cetak (exp.__kelas__)
#menerapkan blok kecuali
kecuali:
print("Ada yang tidak beres selain kesalahan nama")

Keluaran

Blok lain

Blok else digunakan dengan blok coba dan pengecualian. Blok else mendefinisikan sepotong kode yang dieksekusi jika blok try berhasil dijalankan dan tidak ada kesalahan yang terjadi. Terkadang, Anda mungkin perlu mencetak pesan atau menjalankan fungsi ketika blok coba telah berhasil dijalankan. Untuk alasan ini, kita dapat mengimplementasikan blok else dengan blok try dan exception.

Dalam contoh ini, kami akan mengimplementasikan blok else dalam skrip Python kami.

#menerapkan blok coba
mencoba:
x=1/2
cetak (x)
#menerapkan blok kecuali untuk menangkap kesalahan
kecuali Pengecualian sebagai exp:
cetak (exp.__kelas__)
#menerapkan blok lain
lain:
print("Semuanya baik-baik saja")

Keluaran

Blok else dieksekusi setelah eksekusi blok try yang berhasil.

Sekarang mari kita lihat contoh lain menggunakan blok else.

#menerapkan blok coba
mencoba:
nama = "Tandai"
#menerapkan blok kecuali untuk menangkap kesalahan
kecuali Pengecualian sebagai exp:
cetak (exp.__kelas__)
#menerapkan blok lain
lain:
print("Namanya : ",nama)

Keluaran

Dalam contoh di atas, variabel nama didefinisikan di dalam blok try dan dicetak di blok else.

Blok akhirnya

Itu akhirnya blok berisi potongan kode yang harus dieksekusi terlepas dari apakah blok try menimbulkan pengecualian. Blok akhirnya adalah opsional dan dideklarasikan dengan blok coba. Misalnya, jika kita telah membuka file teks untuk membaca blok try dan menimbulkan kesalahan atau pengecualian, lebih baik untuk menyertakan file di blok akhirnya, bahkan jika kesalahan terjadi. Mari kita implementasikan blok akhirnya dalam skrip Python kita.

#menerapkan blok coba
mencoba:
cetak(my_dict)
#menerapkan blok kecuali untuk menangkap kesalahan
kecuali Pengecualian sebagai exp:
cetak (exp.__kelas__)
#menerapkan blok akhirnya
akhirnya:
print("Ini adalah blok terakhir")
print("Blok akhirnya dieksekusi")

Keluaran

Pada output, dapat dilihat bahwa blok try memunculkan eksepsi. Namun, blok akhirnya dieksekusi di akhir.

Sekarang, mari kita buka file teks di blok try, yang memunculkan pengecualian saat file terlampir di blok akhirnya.

#menerapkan blok coba
mencoba:
fileObj=buka("siswaku.xml","r")
fileObj.mencari (-2)
cetak(fileObj.garis baca())
#menerapkan blok kecuali
kecuali Pengecualian sebagai exp:
cetak (exp.__kelas__)
#menerapkan blok akhirnya
akhirnya:
fileObj.Menutup()
print("File berhasil ditutup")

Keluaran

Seperti yang Anda lihat, terlepas dari kesalahan nilai, file telah berhasil ditutup di dalam blok terakhir.

Naikkan Pengecualian

Meskipun pengecualian dimunculkan secara otomatis saat terjadi kesalahan, dengan Python, Anda juga dapat memunculkan pengecualian secara manual. Itu menaikkan kata kunci digunakan untuk menaikkan atau membuang pengecualian.

Kami sekarang akan mengajukan beberapa pengecualian menggunakan kata kunci kenaikan. Dalam contoh berikut, kondisi if diterapkan untuk memeriksa bilangan non-negatif. Jika ada angka non-negatif, maka pengecualian "Angka non-negatif tidak diperbolehkan" dimunculkan.

#mendeklarasikan dua variabel bilangan
nomor1 = 20
bilangan2= -10
jika ((angka1<0) | (num2<0)):
raise Exception("Angka non-negatif tidak diperbolehkan")
lain:
cetak(angka1+angka2)

Keluaran

Kesimpulan

Pengecualian terjadi sebagai respons terhadap kesalahan saat dijalankan. Dalam Python, kita dapat menangani pengecualian dengan menggunakan blok coba dan kecuali. Artikel ini menjelaskan cara menggunakan pengecualian dalam Python melalui berbagai contoh.

5 Kartu Tangkap Game Teratas
Kita semua telah melihat dan menyukai gameplay streaming di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain top yang telah m...
Cara Mengembangkan Game di Linux
Satu dekade yang lalu, tidak banyak pengguna Linux yang memprediksi bahwa sistem operasi favorit mereka suatu hari nanti akan menjadi platform game po...
Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...