Python - Mengangkat Pengecualian
Halo semuanya, para pemula Python! Hari ini, kita akan menyelam ke dunia yang menarik tentang pengangkatan pengecualian di Python. Jangan khawatir jika Anda baru mengenal pemrograman – saya akan memandu Anda melalui konsep ini langkah demi langkah, sama seperti yang saya lakukan untuk banyak siswa selama tahun-tahun pengajaran saya. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai petualangan Python ini bersama-sama!
Mengangkat Pengecualian di Python
Bayangkan Anda sedang memasak makanan yang lezat, tetapi tiba-tiba Anda menyadari Anda kehabisan bahan penyusun yang krusial. Apa yang Anda lakukan? Anda mungkin akan berhenti memasak dan memberitahu semua orang tentang masalah ini, kan? Baiklah, itulah yang sama dengan pengangkatan pengecualian di Python – itu adalah cara untuk menyinyal bahwa ada hal yang tak terduga atau problematis telah terjadi di kode Anda.
Mengapa Mengangkat Pengecualian?
Mengangkat pengecualian memungkinkan kita untuk:
- Menandakan kesalahan atau situasi yang tidak biasa
- Mengontrol alur program kita
- Memberikan umpan balik yang berarti kepada pengguna atau bagian lain dari kode kita
Mari kita mulai dengan contoh sederhana:
def bagi(a, b):
if b == 0:
raise ValueError("Tidak dapat membagi dengan nol!")
return a / b
try:
hasil = bagi(10, 0)
except ValueError as e:
print(f"Ups! Terjadi kesalahan: {e}")
Dalam contoh ini, kita mengangkat ValueError
ketika seseorang mencoba untuk membagi dengan nol. Mari kita pecahkan:
- Kita definisikan fungsi
bagi(a, b)
yang memeriksa jikab
adalah nol. - Jika
b
adalah nol, kita mengangkatValueError
dengan pesan khusus. - Kita menggunakan blok
try-except
untuk menangkap pengecualian dan mencetak pesan yang ramah.
Ketika Anda menjalankan kode ini, Anda akan lihat:
Ups! Terjadi kesalahan: Tidak dapat membagi dengan nol!
Mengangkat Pengecualian Bawaan
Python datang dengan berbagai jenis pengecualian bawaan yang kita dapat angkat. Berikut adalah tabel beberapa yang umum:
Pengecualian | Deskripsi |
---|---|
ValueError | Diangkat ketika fungsi menerima argumen dengan jenis yang benar tetapi nilai yang tidak sesuai |
TypeError | Diangkat ketika operasi atau fungsi diterapkan ke objek dengan jenis yang tidak sesuai |
IndexError | Diangkat ketika subskripsi urutan di luar jangkauan |
KeyError | Diangkat ketika kunci kamus tidak ditemukan |
FileNotFoundError | Diangkat ketika file atau direktori diminta tetapi tidak ada |
Mari kita lihat beberapa contoh:
def cek_usia(usia):
if not isinstance(usia, int):
raise TypeError("Usia harus berupa integer")
if usia < 0:
raise ValueError("Usia tidak boleh negatif")
print(f"Usia Anda adalah {usia}")
try:
cek_usia("dua puluh")
except TypeError as e:
print(f"Kesalahan jenis: {e}")
try:
cek_usia(-5)
except ValueError as e:
print(f"Kesalahan nilai: {e}")
Ketika Anda menjalankan kode ini, Anda akan lihat:
Kesalahan jenis: Usia harus berupa integer
Kesalahan nilai: Usia tidak boleh negatif
Mengangkat Pengecualian Khusus
Terkadang, pengecualian bawaan tidak cukup. Itulah saat kita membuat pengecualian khusus kita sendiri! Itu seperti menjadi seorang chef dan membuat resep khusus kita sendiri.
Membuat Pengecualian Khusus
Untuk membuat pengecualian khusus, kita cukup mendefinisikan kelas baru yang mewarisi kelas Exception
:
class TerlaluBanyakPizzaError(Exception):
pass
def order_pizza(jumlah):
if jumlah > 100:
raise TerlaluBanyakPizzaError("Whoa! Itu terlalu banyak pizza untuk ditangani!")
print(f"Order dikonfirmasi: {jumlah} pizza")
try:
order_pizza(101)
except TerlaluBanyakPizzaError as e:
print(f"Order gagal: {e}")
Dalam contoh yang lezat ini:
- Kita definisikan pengecualian khusus
TerlaluBanyakPizzaError
. - Fungsi
order_pizza
mengangkat pengecualian ini jika seseorang memesan lebih dari 100 pizza. - Kita tangkap pengecualian dan mencetak pesan yang ramah.
Ketika Anda menjalankan kode ini, Anda akan lihat:
Order gagal: Whoa! Itu terlalu banyak pizza untuk ditangani!
Mengangkat Ulang Pengecualian
Terkadang, Anda mungkin ingin menangkap pengecualian, melakukan sesuatu dengan itu, dan kemudian mengangkat ulang untuk ditangani oleh orang lain. Itu seperti melempar wortel panas dalam permainan!
Berikut cara Anda melakukan itu:
def operasi_resiko():
print("Memulai operasi resiko...")
raise ValueError("Ada yang salah!")
def melakukan_operasi():
try:
operasi_resiko()
except ValueError:
print("Kesalahan ditangkap, melogkan...")
raise # Mengangkat ulang pengecualian
try:
melakukan_operasi()
except ValueError as e:
print(f"Operasi gagal: {e}")
Dalam contoh ini:
-
operasi_resiko()
selalu mengangkatValueError
. -
melakukan_operasi()
menangkap pengecualian, melogkan, dan kemudian mengangkat ulang. - Kita tangkap pengecualian yang diangkat ulang di blok
try-except
luar.
Ketika Anda menjalankan kode ini, Anda akan lihat:
Memulai operasi resiko...
Kesalahan ditangkap, melogkan...
Operasi gagal: Ada yang salah!
Dan itu adalah, teman-teman! Kita telah membahas mengenai pengangkatan pengecualian, pengecualian bawaan, pengecualian khusus, dan bahkan pengangkatan ulang pengecualian. Ingat, pengecualian bukan musuh Anda – itu adalah alat yang berharga yang membantu Anda menulis kode yang tangguh dan tahan terhadap kesalahan.
Seperti yang saya selalu katakan kepada siswa saya, pemrograman adalah seperti belajar untuk bersepeda. Anda mungkin akan kalah beberapa kali, tetapi setiap kalah (atau pengecualian) mengajarkan Anda sesuatu yang baru. Tetap berlatih, tetap curious, dan jangan takut untuk mengangkat beberapa pengecualian di jalan Anda!
Selamat coding, dan semoga pengecualian Anda selalu bersifat sengaja! ?✨
Credits: Image by storyset