Python - Menghasilkan Penyataan Pengecualian
Hai di sana, yang berhasrat menjadi Pythonistas! Hari ini, kita akan menyelam ke dunia yang menarik tentang penghasilan penyataan pengecualian di Python. Jangan khawatir jika kamu baru mengenal pemrograman – Saya akan memandu kamu melalui konsep ini langkah demi langkah, seperti yang saya lakukan untuk pelbagai pelajar selama tahun tahun penyampingan saya. Jadi, ambil atas rak sebuah rak sejenis minuman kesukaan kamu, dan mari kita melakukan petualangan Python ini bersama-sama!
Menghasilkan Penyataan Pengecualian di Python
Bayangkan jika kamu sedang memasak masakan yang sedap, tetapi tiba-tiba kamu menyadari kamu kehabisan bahan penting. Apa yang kamu lakukan? Kamu mungkin akan berhenti memasak dan memberitahu semua orang tentang masalah ini, kan? Well, itulah yang benar-benar tentang penghasilan penyataan pengecualian di Python – itu adalah cara untuk menyignal bahwa sesuatu yang tidak dijangka atau bermasalah telah terjadi di kode kamu.
Mengapa Menghasilkan Penyataan Pengecualian?
Penghasilan penyataan pengecualian membolehkan kita untuk:
- Menunjukkan ralat atau situasi yang luar biasa
- Mengawal aliran program kita
- Memberikan maklum balas yang bermakna kepada pengguna atau bahagian lain dari kode kita
Mari kita mula dengan contoh yang simple:
def divide(a, b):
if b == 0:
raise ValueError("Tidak boleh dibahagi oleh nol!")
return a / b
try:
result = divide(10, 0)
except ValueError as e:
print(f"Oops! Kesilapan terjadi: {e}")
Dalam contoh ini, kita menghasilkan ValueError
apabila seseorang mencuba untuk membagi oleh nol. Mari kita kongsi ini:
- Kita define fungsi
divide(a, b)
yang memeriksa jikab
adalah nol. - Jika
b
adalah nol, kita menghasilkanValueError
dengan mesej suai. - Kita menggunakan blok
try-except
untuk menangkap pengecualian dan mencetak mesej yang mesra.
Apabila kamu menjalankan kod ini, kamu akan lihat:
Oops! Kesilapan terjadi: Tidak boleh dibahagi oleh nol!
Menghasilkan Penyataan Pengecualian yang Terbina-dalam
Python datang dengan pelbagai penyataan pengecualian yang terbina-dalam yang kita boleh hasilkan. Ini adalah rak some yang umum:
Penyataan Pengecualian | Keterangan |
---|---|
ValueError | Dikeluarkan apabila fungsi menerima argumen jenis yang betul tetapi nilai yang tidak sesuai |
TypeError | Dikeluarkan apabila operasi atau fungsi diterapkan kepada objek jenis yang tidak sesuai |
IndexError | Dikeluarkan apabila subskrip penyusunan di luar julat |
KeyError | Dikeluarkan apabila kunci kamus tidak ditemui |
FileNotFoundError | Dikeluarkan apabila fail atau direktori diminta tetapi tidak wujud |
Mari lihat beberapa contoh:
def check_age(age):
if not isinstance(age, int):
raise TypeError("Umur mesti merupakan integer")
if age < 0:
raise ValueError("Umur tidak boleh negatif")
print(f"Umur kamu adalah {age}")
try:
check_age("dua puluh")
except TypeError as e:
print(f"Ralat jenis: {e}")
try:
check_age(-5)
except ValueError as e:
print(f"Ralat nilai: {e}")
Apabila kamu menjalankan kod ini, kamu akan lihat:
Ralat jenis: Umur mesti merupakan integer
Ralat nilai: Umur tidak boleh negatif
Menghasilkan Penyataan Pengecualian Suai
Buat kali ini, penyataan pengecualian yang terbina-dalam hanya tidak cukup. Itu apabila kita membuat penyataan pengecualian suai kami sendiri! Itu seperti menjadi juru masak dan membuat resepi yang unik kami sendiri.
Membuat Penyataan Pengecualian Suai
Untuk membuat penyataan pengecualian suai, kita hanya perlu define kelas baru yang mewarisi dari kelas Exception
:
class TooManyPizzasError(Exception):
pass
def order_pizza(number):
if number > 100:
raise TooManyPizzasError("Wah! Itu terlalu banyak pizza untuk diuruskan!")
print(f"Order dikonfirmasi: {number} pizza")
try:
order_pizza(101)
except TooManyPizzasError as e:
print(f"Order gagal: {e}")
Dalam contoh yang sedap ini:
- Kita define penyataan pengecualian suai
TooManyPizzasError
. - Fungsi
order_pizza
kita menghasilkan penyataan pengecualian ini jika seseorang memesan lebih daripada 100 pizza. - Kita tangkap pengecualian dan mencetak mesej yang mesra.
Apabila kamu menjalankan kod ini, kamu akan lihat:
Order gagal: Wah! Itu terlalu banyak pizza untuk diuruskan!
Menghasilkan Semula Penyataan Pengecualian
Buat kali ini, kamu mungkin ingin menangkap penyataan pengecualian, melakukan sesuatu dengannya, dan kemudian menghasilkannya semula untuk orang lain untuk menguruskan. Itu seperti melempar kentang panas dalam permainan!
Berikut cara kamu boleh melakukannya:
def risky_operation():
print("Mula operasi yang berisiko...")
raise ValueError("Ada yang salah!")
def perform_operation():
try:
risky_operation()
except ValueError:
print("Kesilapan ditemui, untuk log...")
raise # Menghasilkan semula penyataan pengecualian
try:
perform_operation()
except ValueError as e:
print(f"Operasi gagal: {e}")
Dalam contoh ini:
-
risky_operation()
sentiasa menghasilkanValueError
. -
perform_operation()
menangkap pengecualian, melogkan itu, dan kemudian menghasilkannya semula. - Kita tangkap pengecualian yang dihasilkan semula di atas blok
try-except
.
Apabila kamu menjalankan kod ini, kamu akan lihat:
Mula operasi yang berisiko...
Kesilapan ditemui, untuk log...
Operasi gagal: Ada yang salah!
Dan itu adalah, rakyat! Kita telah membahas penghasilan penyataan pengecualian, penyataan pengecualian yang terbina-dalam, penyataan pengecualian suai, dan juga penghasilan semula penyataan pengecualian. Ingat, penyataan pengecualian bukan musuh kamu – mereka adalah alat yang berharga yang membantu kamu menulis kode yang kuat dan tahan terhadap ralat.
Seperti yang saya sentiasa katakan kepada pelajar saya, pemrograman adalah seperti belajar untuk bersepeda. Kamu mungkin jatuh beberapa kali, tetapi setiap ketinggalan (atau penyataan pengecualian) mengajarkan kamu sesuatu yang baru. Teruskan untuk berlatih, tetap khusyuk, dan jangan takut untuk menghasilkan beberapa penyataan pengecualian di sepanjang jalan!
Happy coding, dan may penyataan pengecualian kamu selalu bermaksud! ?✨
Credits: Image by storyset