- 1 1. Gambaran Umum Penanganan Eksepsi di Python
- 2 2. Apa Itu Pernyataan try-except?
- 3 3. Eksepsi Umum dan Cara Menanganinya
- 4 4. Mendapatkan Detail Kesalahan dengan Objek Eksepsi
- 5 5. Cara Menggunakan Blok finally
- 6 6. Menghasilkan Eksepsi Secara Manual dengan raise
- 7 7. Praktik Terbaik dalam Penanganan Eksepsi di Python
1. Gambaran Umum Penanganan Eksepsi di Python
Apa Itu Penanganan Eksepsi di Python?
Saat menjalankan program, terkadang terjadi kesalahan yang tidak terduga. Kesalahan ini disebut “eksepsi”, dan jika eksepsi terjadi, program biasanya akan berhenti secara tiba-tiba. Python menyediakan penanganan eksepsi untuk mengatasi situasi ini. Dengan menggunakan penanganan eksepsi, program dapat menangani kesalahan dengan baik dan tetap berjalan tanpa terhenti.
Mengapa Penanganan Eksepsi Penting?
Penanganan eksepsi penting karena memungkinkan program tetap berjalan dengan cara yang ramah bagi pengguna meskipun terjadi kesalahan. Selain itu, ini membantu mengidentifikasi penyebab kesalahan dan mempermudah proses debugging, sehingga menghasilkan program yang lebih andal.
2. Apa Itu Pernyataan try-except
?
Struktur Dasar
Pernyataan try-except
di Python digunakan untuk menangani kemungkinan kesalahan dalam kode. Kode yang berpotensi menyebabkan kesalahan ditempatkan di dalam blok try
, sedangkan cara menangani kesalahan tersebut ditulis dalam blok except
. Berikut adalah struktur dasarnya:
try:
# Kode yang mungkin menyebabkan kesalahan
except SomeError:
# Kode untuk menangani kesalahan
Jika kode dalam blok try
dieksekusi tanpa masalah, maka blok except
akan dilewati. Namun, jika terjadi kesalahan, blok except
akan menangani eksepsi yang sesuai.
Contoh Umum: Kesalahan Pembagian Nol
Jika mencoba membagi angka dengan nol, akan muncul eksepsi ZeroDivisionError
. Kesalahan ini dapat ditangani seperti berikut:
try:
result = 10 / 0
except ZeroDivisionError:
print("Tidak dapat membagi dengan nol")

3. Eksepsi Umum dan Cara Menanganinya
1. ZeroDivisionError
Eksepsi ini terjadi ketika mencoba membagi suatu angka dengan nol. Sebagai contoh, jika Anda mencoba membagi angka dengan 0, Python akan secara otomatis menghasilkan ZeroDivisionError
.
try:
result = 10 / 0
except ZeroDivisionError:
print("Tidak dapat membagi dengan nol")
2. ValueError
ValueError
terjadi ketika sebuah fungsi atau operasi menerima nilai yang tidak sesuai. Contohnya, jika mencoba mengonversi string yang tidak berbentuk angka ke tipe data int()
, akan terjadi kesalahan.
try:
num = int("not_a_number")
except ValueError:
print("Nilai tidak valid")
3. Menangani Beberapa Eksepsi Sekaligus
Jika ingin menangani lebih dari satu jenis eksepsi dalam satu blok except
, Anda bisa menggunakan tuple:
try:
result = 10 / "string"
except (ZeroDivisionError, TypeError):
print("Terjadi kesalahan")
4. Mendapatkan Detail Kesalahan dengan Objek Eksepsi
Menggunakan as
untuk Mendapatkan Objek Eksepsi
Pada blok except
, Anda dapat menggunakan kata kunci as
untuk menangkap objek eksepsi. Dengan cara ini, Anda bisa melihat detail kesalahan atau mencatatnya dalam log.
try:
a = 10 / 0
except ZeroDivisionError as e:
print(f"Terjadi kesalahan: {e}")
Pada kode di atas, jika ZeroDivisionError
terjadi, variabel e
akan menyimpan pesan kesalahan dan menampilkannya.
5. Cara Menggunakan Blok finally
Apa Itu finally
?
Blok finally
digunakan untuk menuliskan kode yang akan dieksekusi tanpa memandang apakah eksepsi terjadi atau tidak. Ini sangat berguna untuk operasi seperti menutup file atau membersihkan koneksi database.
try:
file = open("test.txt", "r")
except FileNotFoundError:
print("File tidak ditemukan")
finally:
print("Operasi file selesai")
Membersihkan Sumber Daya
Blok finally
sangat berguna untuk memastikan bahwa sumber daya selalu dibersihkan setelah digunakan. Misalnya, dalam operasi file, kita dapat memastikan file ditutup dengan benar:
try:
file = open("data.txt", "r")
# Operasi file
finally:
file.close()
Dengan menggunakan blok finally
, kita dapat menjamin bahwa file akan selalu ditutup setelah digunakan.
6. Menghasilkan Eksepsi Secara Manual dengan raise
Peran raise
Pernyataan raise
memungkinkan pengembang untuk secara eksplisit menghasilkan eksepsi. Ini berguna untuk validasi input atau ketika kondisi tertentu memerlukan penghentian eksekusi dengan pesan kesalahan yang jelas.
def check_value(value):
if value < 0:
raise ValueError("Nilai negatif tidak diperbolehkan")
Contoh Eksepsi Kustom
Dengan menggunakan raise
, kita dapat membuat eksepsi khusus untuk menangani kasus tertentu, sehingga membantu mencegah perilaku yang tidak diinginkan.

7. Praktik Terbaik dalam Penanganan Eksepsi di Python
1. Hindari Penanganan Eksepsi yang Berlebihan
Terlalu sering menggunakan eksepsi dapat membuat kode sulit dibaca dan didebug. Gunakan penanganan eksepsi hanya untuk menangani kesalahan yang kemungkinan besar akan terjadi, bukan untuk alur program normal.
2. Gunakan Logging untuk Mencatat Kesalahan
Ketika terjadi eksepsi, mencatat pesan kesalahan dalam log sangat penting untuk menganalisis dan memperbaiki masalah. Contoh berikut menunjukkan penggunaan modul logging
untuk mencatat kesalahan.
import logging
try:
a = 10 / 0
except ZeroDivisionError as e:
logging.error(f"Terjadi kesalahan: {e}")
3. Hindari Penggunaan except
yang Terlalu Luas
Sebaiknya, tangkap eksepsi secara spesifik daripada menggunakan except Exception
secara luas. Jika menangkap semua eksepsi tanpa menangani kasus tertentu, bisa jadi ada kesalahan yang tidak terdeteksi dengan benar.