Exception handling pada Python adalah konstruksi bahasa pemrograman yang digunakan untuk menangani kesalahan atau error saat menjalankan blok kode. Exception handling pada python menggunakan keyword try dan keyword except, Anda dapat mengidentifikasi potensi kesalahan dalam program Anda dan mengambil tindakan yang sesuai. Exception handling ini membantu mencegah program dari berhenti secara tiba-tiba dan memberikan kesempatan untuk menangani masalah yang mungkin muncul selama eksekusi. Dengan fitur ini, Python menjadi bahasa pemrograman yang tangguh dan dapat mengatasi kesalahan dengan elegan.
Blok try
memungkinkan Anda menguji blok kode untuk kesalahan atau error.
Blok except
memungkinkan Anda menangani kesalahan setelah kesalahan itu terjadi.
Blok else
memungkinkan Anda mengeksekusi kode ketika tidak ada kesalahan.
Blok finally
memungkinkan Anda mengeksekusi kode, terlepas dari hasil eksekusi kode pada blok try dan except.
Exception Handling
Saat terjadi kesalahan atau error, atau exception seperti yang kita sebut, eksekusi blok kode Python biasanya akan berhenti dan menghasilkan pesan kesalahan.
Exception ini dapat ditangani dengan menggunakan pernyataan try
.
Contoh:
#Blok try akan menghasilkan kesalahan, karena x tidak ditentukan:
try:
print(x)
except:
print("Exception terjadi")
Output:
Exception terjadi
Karena blok try menimbulkan kesalahan, blok exception (except) akan dieksekusi.
Tanpa blok except, program akan crash dan menimbulkan kesalahan.
Contoh:
#Ini akan menimbulkan error, karena x tidak didefinisikan:
print(x)
Output:
Traceback (most recent call last):
File "./prog.py", line 3, in
NameError: name 'x' is not defined
Banyak Exception
Anda dapat menentukan blok except sebanyak yang Anda inginkan, misalnya jika Anda ingin mengeksekusi blok kode khusus untuk jenis kesalahan khusus.
Contoh:
# Blok try akan menghasilkan NameError, karena x tidak didefinisikan:
try:
print(x)
except NameError:
print("Variabel x tidak didefinisikan")
except:
print("Ada yang tidak beres")
Output:
Variabel x tidak didefinisikan
Else
Anda dapat menggunakan kata kunci else
untuk menentukan blok kode yang akan dieksekusi jika tidak ada kesalahan yang muncul.
Contoh:
#Blok try tidak menimbulkan kesalahan, jadi blok else dijalankan:
try:
print("Halo")
except:
print("Ada yang salah")
else:
print("Tidak ada yang salah")
Output:
Halo
Tidak ada yang salah
Finally
Blok finally
, jika ada dan dibuat, akan dieksekusi terlepas dari apakah blok try menimbulkan kesalahan atau tidak.
Contoh:
#Blok finally dijalankan tidak peduli apakah blok try menimbulkan kesalahan atau tidak:
try:
print(x)
except:
print("Ada yang salah")
finally:
print("'Try Except' selesai")
Output:
Ada yang salah
'Try Except' selesai
Blok finally ini dapat berguna untuk menghapus object, collection, variabel, menutup object, menutup koneksi dan lain sebagainya.
Contoh:
#Blok try akan menimbulkan kesalahan saat mencoba menulis ke file read-only:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Ada yang salah saat menulis ke file")
finally:
f.close()
except:
print("Ada yang salah saat membuka file")
Output:
Ada yang salah saat menulis ke file
Program dapat dilanjutkan, tanpa membiarkan object file tetap terbuka karena sudah pasti ditutup pada blok finally.
Melemparkan Exception
Sebagai pengembang Python, Anda dapat memilih untuk melempar exception jika suatu kondisi terjadi, kondisi ini bisa berupa kesalahan yang sudah bisa diantisipasi atau khusus lain.
Untuk melempar exception, gunakan kata kunci raise
.
Contoh:
x = -1
if x < 0:
raise Exception("Maaf, tidak ada angka di bawah nol")
Output:
Traceback (most recent call last):
File "./prog.py", line 4, in
Exception: Maaf, tidak ada angka di bawah nol
Kata kunci raise
digunakan untuk melemparkan exception.
Anda dapat menentukan jenis exception apa yang akan dimunculkan, dan teks yang akan dicetak ke pengguna.
Contoh:
x = "hello"
if not type(x) is int:
raise TypeError("Hanya integer yang diperbolehkan")
Output:
Traceback (most recent call last):
File "./prog.py", line 4, in
TypeError: Hanya integer yang diperbolehkan
Tutorial sebelumnya : Python PIP
Tutorial setelahnya : User Input Pada Python
Semua Tutorial Python : Tutorial Python