Try Except¶
Blok
trymemungkinkan Anda menguji blok kode untuk menemukan kesalahan.Blok
exceptmemungkinkan Anda menangani kesalahan.Blok
elsememungkinkan Anda mengeksekusi kode saat tidak ada kesalahan.Blok
finallymemungkinkan Anda mengeksekusi kode, terlepas dari hasil blok try dan except.
Exception Handling¶
Ketika terjadi kesalahan, atau yang biasa kita sebut pengecualian, Python biasanya akan berhenti dan menampilkan pesan kesalahan.
Pengecualian ini dapat ditangani menggunakan pernyataan try:
#The try block will generate an error, because x is not defined:
try:
print(x)
except:
print("An exception occurred")
# result: An exception occurred
Karena blok try menimbulkan kesalahan, blok except akan dieksekusi.
Tanpa blok try, program akan macet dan menimbulkan kesalahan:
Many Exceptions¶
Anda dapat menentukan blok pengecualian sebanyak yang Anda inginkan, misalnya jika Anda ingin mengeksekusi blok kode khusus untuk jenis kesalahan khusus:
#The try block will generate a NameError, because x is not defined:
try:
print(x)
except NameError:
print("Variable x is not defined")
except:
print("Something else went wrong")
#result: Variable x is not defined
Else¶
Anda dapat menggunakan kata kunci else untuk menentukan blok kode yang akan dieksekusi jika tidak ada kesalahan yang muncul:
#The try block does not raise any errors, so the else block is executed:
try:
print("Hello")
except:
print("Something went wrong")
else:
print("Nothing went wrong")
#result:
# Hello
# Nothing went wrong
Finally¶
Blok finally, jika ditentukan, akan dieksekusi tanpa memandang apakah blok try menimbulkan kesalahan atau tidak.
#The finally block gets executed no matter if the try block raises any errors or not:
try:
print(x)
except:
print("Something went wrong")
finally:
print("The 'try except' is finished")
#result:
# Something went wrong
# The 'try except' is finished
Ini dapat berguna untuk menutup objek dan membersihkan sumber daya:
#The try block will raise an error when trying to write to a read-only file:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the file")
#result: Something went wrong when writing to the file
Program dapat dilanjutkan tanpa membiarkan objek berkas terbuka.
Raise an exception¶
Sebagai pengembang Python, Anda dapat memilih untuk melempar pengecualian jika suatu kondisi terjadi.
Untuk melempar (atau memunculkan) pengecualian, gunakan kata kunci raise.
#Raise an error and stop the program if x is lower than 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below zero")
#result:
# Traceback (most recent call last):
# File "demo_ref_keyword_raise.py", line 4, in <module>
# raise Exception("Sorry, no numbers below zero")
# Exception: Sorry, no numbers below zero
Kata kunci raise digunakan untuk memunculkan pengecualian.
Anda dapat menentukan jenis kesalahan yang akan dimunculkan, dan teks yang akan ditampilkan kepada pengguna.
#Raise a TypeError if x is not an integer:
x = "hello"
- if not type(x) is int:
raise TypeError("Only integers are allowed")
#result: # Traceback (most recent call last): # File "demo_ref_keyword_raise2.py", line 4, in <module> # raise TypeError("Only integers are allowed") # TypeError: Only integers are allowed