Try Except

  • Blok try memungkinkan Anda menguji blok kode untuk menemukan kesalahan.

  • Blok except memungkinkan Anda menangani kesalahan.

  • Blok else memungkinkan Anda mengeksekusi kode saat tidak ada kesalahan.

  • Blok finally memungkinkan 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