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

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:

  1. Kami meminta pengguna untuk memasukkan angka.
  2. Kami mencoba untuk membagi 10 dengan angka itu.
  3. 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:

  1. Jika pengguna memasukkan sesuatu yang bukan angka (ValueError)
  2. Jika pengguna memasukkan nol (ZeroDivisionError)
  3. 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:

  1. Kami cek jika angka adalah positif.
  2. Jika tidak, kita naikkan ValueError sendiri.
  3. 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:

  1. Kami mencoba untuk membuka file dan membaca angka dari itu.
  2. Kami menangani berbagai potensi kesalahan.
  3. Jika berhasil, kita mencetak hasilnya.
  4. 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