Cara menggunakan HANDLEING pada Python

Exception Handling jika diartikan secara bebas dapat disebut sebagai ‘teknik penanganan kasus khusus’. Exception handling pada kode program diperlukan saat kita perlu menyiasati adanya perintah yang gagal dieksekusi karena adanya kondisi yang tidak sesuai dengan kondisi yang diharapkan pada kasus normal.

Contoh sederhana kondisi tidak normal misalkan saat program mengharapkan input dari user berupa angka namun user/sistem memberikan nilai ataupun format yang tidak valid. Jika kasus khusus tersebut tidak diberikan penanganan khusus maka program dapat terhenti karena error.

Contoh kasus

Jalankan contoh kode di bawah, kemudian coba berikan nilai seharusnya (angka) dan bandingkan hasilnya dengan memberikan nilai yang tidak sesuai (misal: huruf).

Jika pada contoh di atas user memberikan nilai non angka saat diminta, maka program akan mengalami fatal error dan keluar sebelum baris kode berikutnya dijalankan .

Menambahkan exception handling

Untuk menangani kasus pada contoh di atas kita dapat memodifikasi kode dan menambahkan exception handling untuk mendeteksi terjadinya kesalahan. Dengan menambahkan exception handling, jikapun terjadi kesalahan program dapat tetap melanjutkan ke baris berikutnya.

Syntax exeption handling

try:
    # blok kode ini dieksekusi terlebih dahulu
except:
    # eksekusi pindah ke blok except bila pada blok try terjadi error
    # eksekusi pindah tanpa melanjutkan sisa kode pada blok try

Solusi untuk kasus sebelumnya

Jalankan contoh berikut untuk lebih jelasnya, berikan nilai yang yang sama seperti saat anda menghasilkan error pada contoh kode sebelumnya dan perhatikan hasilnya.

Contoh lain

Exception handling saat konversi datetime

Kode di bawah adalah contoh solusi saat user memasukkan tanggal dengan format yang salah.

from datetime import datetime as dtm

tanggal_valid = False

while not tanggal_valid:
  dt_input = input('Masukkan tanggal lahir anda dengan format seperti contoh berikut: 31-12-1995\n')
  try:
    tanggal_lahir = dtm.strptime(dt_input,'%d %m %Y')
    tanggal_valid = True
  except:
    print('Anda memasukkan nilai dengan format yang salah')

print(tanggal_lahir)

Semoga bermanfaat,

Salam

Penanganan file adalah bagian penting dari aplikasi web apapun.

Python memiliki beberapa fungsi untuk membuat, membaca, memperbarui, dan menghapus file.

File Handling (Penanganan File)

Fungsi key untuk bekerja dengan file dengan Python adalah fungsi open().

Fungsi open() mengambil dua parameter; nama file, dan mode.

Ada empat metode (mode) berbeda untuk membuka file, yaitu seperti berikut:

“r” – Read- Nilai default. Membuka file untuk membaca, error jika file tidak ada

“a” – Append- Membuka file untuk ditambahkan, membuat file jika tidak ada

“w” – write- Membuka file untuk ditulis, membuat file jika tidak ada

“x” – create- Membuat file yang ditentukan, mengembalikan kesalahan jika file tersebut ada

Selain itu, Anda dapat menentukan apakah file harus ditangani sebagai mode biner atau teks

“t” – Text – Nilai default. Mode teks

“b” – Biner – Mode biner (mis. gambar)

Sintaks

Untuk membuka file yang dapat dibaca cukup dengan menentukan nama file.

Kode diatas sama dengan:

f = open("demofile.txt", "rt")

Karena “r” untuk dibaca, dan “t” untuk teks adalah nilai default, kita tidak perlu menentukannya lagi.

Catatan: Pastikan file tersebut ada, atau jika tidak akan menghasilkan error.

Blok trymemungkinkan untuk menguji blok kode terhadap kesalahan.

Blok except memungkinkan untuk menangani kesalahan.

Blok finally memungkinkan untuk mengeksekusi kode, terlepas dari hasil blok try- dan except.

Exception Handling

Ketika kesalahan terjadi, atau exception seperti yang biasa disebut, Python biasanya akan berhenti dan menghasilkan pesan kesalahan.

Exception ini dapat ditangani menggunakan pernyataan try.

Contoh:
Blok try akan menghasilkan exception, karena x tidak ditentukan

#Blok try akan menghasilkan error, karena x tidak ditentukan

try:
  print(x)
except:
  print("An exception occurred")

Karena blok try menghasilkan kesalahan, blok except akan dieksekusi.

Tanpa blok try, program akan crash dan menimbulkan kesalahan.

Contoh:
Pernyataan ini akan menimbulkan kesalahan, karena x tidak ditentukan

Pernyataan ini akan menimbulkan kesalahan, karena x tidak ditentukan

print(x)

Banyak Exception

Anda dapat menentukan blok exception sebanyak yang diinginkan, misalnya jika ingin menjalankan blok kode khusus untuk jenis kesalahan khusus.

Contoh:
Cetak satu pesan jika blok percobaan memunculkan NameError dan lainnya untuk kesalahan lainnya

# Blok try akan menghasilkan NameError, karena x tidak ditentukan:

try:
  print(x)
except NameError:
  print("Variable x tidak ditentukan")
except:
  print("Telah terjadi kesalahan")

Else

Anda dapat menggunakan kata kunci else untuk menentukan blok kode yang akan dieksekusi jika tidak ada kesalahan yang muncul.

Contoh:
Dalam contoh ini, blok try tidak menghasilkan kesalahan apa pun

#Blok percobaan tidak menimbulkan kesalahan, jadi blok else dijalankan:

try:
  print("Hello")
except:
  print("Terjadi kesalahan")
else:
  print("Tidak terjadi kesalahan")

Finally

Blok finally, jika ditentukan, akan dieksekusi terlepas dari apakah blok try menimbulkan kesalahan atau tidak.

Contoh:

# Blok finally dieksekusi tidak peduli apakah blok try menimbulkan kesalahan atau tidak

try:
  print(x)
except:
  print("Terjadi Kesalahan")
finally:
  print("'try except' diselesaikan")

Finally dapat berguna untuk menutup objek dan membersihkan sumber daya.

Contoh:
Cobalah untuk membuka dan menulis pada file yang tidak dapat ditulis

# Blok try akan memunculkan kesalahan saat mencoba menulis ke file read-only:
try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("Terjadi kesalahan saar menulis pada file ini")
finally:
  f.close()

# Program dapat melanjutkan, tanpa meninggalkan objek file terbuka

Program dapat melanjutkan, tanpa meninggalkan objek file terbuka.

Menampilkan Exception

Sebagai pengembang Python, kita dapat memilih untuk memberikan pengecualian jika suatu kondisi terjadi.

Untuk membuang (atau menampilkan) pengecualian, gunakan kata kunci raise.

Contoh:
Menampilkan kesalahan dan hentikan program jika x lebih rendah dari 0

x = -1

if x < 0:
  raise Exception("Maaf tidak ada angka dibawah 0")

Kata kunci raise digunakan untuk menampilkan pengecualian.

Kita dapat menentukan jenis kesalahan yang akan muncul, dan teks yang akan dicetak kepada pengguna.

Contoh:
Tampilkan TypeError jika x bukan bilangan bulat

x = "hello"

if not type(x) is int:
  raise TypeError("Hanya integer yang diizinkan")

Kapan kita menggunakan exception handling?

Exception Handling merupakan mekanisme yang paling diperlukan dalam menangani error yang terjadi pada saat runtime (program berjalan) atau yang lebih dikenal dengan sebutan runtime error. Secara umum, adanya kesalahan / error yang terjadi pada program pada saat runtime dapat menyebabkan program berhenti atau hang.

Apa itu custom exception handling pada python?

Python Exception handling adalah suatu mekanisme penanganan flow normal program karena terjadi exception dengan melanjutkan flow ke code block lainnya. Kenapa harus menangani exception? Karena terjadi exception dan kita tidak tangani, maka program akan berhenti.

Apa itu Exception pada python?

Assertions Exception adalah sebuah peristiwa, yang terjadi selama pelaksanaan program yang mengganggu aliran normal instruksi program. Secara umum, ketika skrip Python menemukan situasi yang tidak dapat diatasi, hal itu menimbulkan pengecualian. Exception adalah objek Python yang mewakili kesalahan.

Di dalam statement try apa arti dari except?

except untuk menangani error yang mungkin kita sendiri tidak mengetahuinya. Biasanya try.. except ini digunakan untuk menangani error saat penggunaan IO, operasi database, atau pengaksesan indeks suatu list atau dictionary, dan berbagai kasus lainnya.