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 cobamencoba:
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 namanama = "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 cobamencoba:
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 cobamencoba:
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 cobamencoba:
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 cobamencoba:
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 cobamencoba:
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 cobamencoba:
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 cobamencoba:
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 bilangannomor1 = 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.