Python - Blok Try-Except
Halo, pemimpin masa depan Python! Saya senang bisa membimbing Anda menjelajahi dunia menarik penanganan kesalahan di Python. Sebagai guru ilmu komputer lingkungan ramah Anda, saya telah melihat banyak siswa kesusahan karena kesalahan, tetapi jangan takut! Pada akhir tutorial ini, Anda akan menanganai pengecualian seperti seorang profesional. Mari kita mulai!
Python Try-Except Block
Bayangkan Anda sedang memasak resep baru. Anda tidak yakin jika Anda memiliki semua bahan, tetapi Anda masih ingin mencoba. Itulah yang dilakukan blok try-except di Python - itu memungkinkan Anda untuk mencoba beberapa kode dan menanganai setiap potensi kesalahan dengan baik.
Struktur dasarnya adalah:
try:
# Kode yang dapat menyebabkan pengecualian
except:
# Kode untuk menanganai pengecualian
Lihat contoh sederhana:
try:
number = int(input("Masukkan angka: "))
result = 10 / number
print(f"10 dibagi {number} adalah {result}")
except:
print("Ups! Ada yang salah.")
Dalam kode ini:
- Kami meminta pengguna untuk memasukkan angka.
- Kami mencoba untuk membagi 10 dengan angka itu.
- Jika ada yang salah (seperti memasukkan nol atau bukan angka), kami tangkap kesalahan dan cetak pesan yang ramah.
Cobalah menjalankan kode ini dengan input yang berbeda. Masukkan 2, lalu 0, lalu "pisang". Lihat bagaimana itu menangani setiap kasus?
Menanganai Beberapa Pengecualian
Sekarang, mari kita lebih spesifik. Berbagai jenis kesalahan dapat terjadi, dan kita mungkin ingin menanganinya secara berbeda. Itu seperti memiliki rak obat pertama untuk jenis luka yang berbeda.
try:
number = int(input("Masukkan angka: "))
result = 10 / number
print(f"10 dibagi {number} adalah {result}")
except ValueError:
print("Itu bukan angka yang valid!")
except ZeroDivisionError:
print("Anda tidak bisa membagi oleh nol!")
except:
print("Ada yang lain yang salah.")
Di sini, kami menangani tiga skenario:
- Jika pengguna memasukkan sesuatu yang bukan angka (ValueError)
- Jika pengguna memasukkan nol (ZeroDivisionError)
- Kesalahan yang tidak diharapkan lainnya
Jalankan kode ini dengan input seperti "lima", 0, 2, dan lihat bagaimana ia merespon secara berbeda!
Menggunakan klausa Else dengan Blok Try-Except
Terkadang, kita ingin menjalankan beberapa kode hanya jika tidak ada pengecualian yang terjadi. Itulah tempat klausa else
menjadi berguna. Pikirkan tentang itu sebagai hadiah untuk saat semua berjalan mulus!
try:
number = int(input("Masukkan angka positif: "))
if number <= 0:
raise ValueError("Itu bukan angka positif!")
result = 10 / number
except ValueError as ve:
print(f"Error: {ve}")
except ZeroDivisionError:
print("Anda tidak bisa membagi oleh nol!")
else:
print(f"10 dibagi {number} adalah {result}")
print("Terima kasih telah memasukkan angka yang valid!")
Dalam contoh ini:
- Kami cek jika angka adalah positif.
- Jika tidak, kita naikkan ValueError sendiri.
- Jika tidak ada pengecualian yang terjadi, blok
else
berjalan, memberikan pesan yang baik.
Klausa Finally
Terakhir tapi tidak terkecuali, kenalilah klausa finally
. Blok kode ini akan berjalan tidak peduli apapun - apakah terjadi pengecualian atau tidak. Itu seperti membersihkan setelah memasak, terlepas dari apakah resep itu sukses atau kesusahan.
try:
file = open("important_data.txt", "r")
content = file.read()
result = 10 / int(content)
except FileNotFoundError:
print("File tidak ada!")
except ValueError:
print("File tidak berisi angka yang valid!")
except ZeroDivisionError:
print("Angka di dalam file adalah nol!")
else:
print(f"Hasilnya adalah: {result}")
finally:
print("Menutup file...")
file.close()
Dalam contoh ini:
- Kami mencoba untuk membuka file dan membaca angka dari itu.
- Kami menangani berbagai potensi kesalahan.
- Jika berhasil, kita mencetak hasilnya.
- Tidak peduli apa yang terjadi, kita pastikan untuk menutup file di blok
finally
.
Ringkasan Metode Penanganan Pengecualian
Berikut adalah tabel yang ringkas menguraikan metode penanganan pengecualian yang kita pelajari:
Metode | Deskripsi | Kasus Penggunaan |
---|---|---|
try | Menyertakan kode yang dapat menyebabkan pengecualian | Selalu digunakan dengan except, else, atau finally |
except | Menanganai pengecualian tertentu | Menangkap dan menanganai kesalahan |
else | Berjalan jika tidak ada pengecualian dalam blok try | Menjalankan kode yang hanya harus berjalan jika try berhasil |
finally | Selalu dieksekusi, terlepas dari pengecualian | Operasi pembersihan (mis., menutup file) |
raise | Mengangkat pengecualian secara manual | Membuat kondisi kesalahan khusus |
Ingat, penanganan kesalahan yang baik adalah seperti memakai sabuk pengaman - itu mungkin tampak tidak perlu sampai Anda benar-benar memerlukannya! Latihan konsep ini, dan segera Anda akan menulis kode Python yang kuat dan tahan terhadap kesalahan seperti seorang profesional.
Selamat coding, dan semoga pengecualian Anda selalu ditangani dengan gracia!
Credits: Image by storyset