Cara menggunakan python exceptions

Sangat lumrah untuk mengalami error selama eksekusi dari sebuah program. Dua macam error yang lumrah dan perlu ditangani adalah syntax error dan exceptions. Syntax error terjadi ketika kamu mengetik kode-nya dengan salah. dalam beberapa kasus, baris yang keliru diulangi oleh parser-nya dengan sebuah panah menunjuk ke lokasi terkini di mana error-nya terdeteksi.

Excepetions berbeda dengan syntax error. mereka terjadi selama eksekusi sebuah program saat sesuatu yang tidak diperkirakan terjadi. contohnya, mari katakan kamu meminta penggunanya untuk memasukkan sebuah angka untuk melakukan sebuah pembagian. Sekarang, jika penggunanya memasukkan sebuah string ketimbang sebuah angka dan kamu mencoba membagi sebuah angka dengan input yang diberikan, program-nya akan mengeluarkan keep_asking = True 32,

Ketika tidak menangani exceptions dengan tepat, program-nya akan keluar secara paksa karena dia tidak tahu apa yang perlu dilakukan dalam kasus tersebut. Kode berikut adalah sebuah contoh:

1keep_asking = True 23while keep_asking: 4 x = int(input("Enter a number: ")) 5 print("Dividing 50 by", x,"will give you :", 50/x)

Sepanjang kamu memasukkan nilai input integral, programnya akan bekerja dengan benar. Walau bagaimanapun, sesegara kamu memasukkan sebuah string atau bahkan sebuah angka desimal sebagai masukannya, kamu akan menerima exception keep_asking = True 33.

Pada panduan ini, kamu akan belajar cara menanganinya dengan tepat dan mengankat exceptions di Python.

Beberapa Exceptions yang Umum

Berikut adalah beberapa exceptions dasar yang mungkin kamu alami saat menulit program. Kamu bisa baca lebih banyak mengenai di situs resminya.

  • NameError: exception ini muncul ketika program-nya tidak dapat menemukan sebuah nama lokal atau global. Nama yang tidak dapat ditemukan dimasukkan ke dalam pesan error-nya.
  • TypeError: Pengecualian ini muncul ketika sebuah fungsi dilewatkan ke sebuah objek dari tipe yang tidak tepat sebagai sebuah argumen. Detil lengkapnya disediakan melalui pesan error.
  • ValueError: Pengecualian ini terjadi ketika sebuah fungsi argumen memiliki tipe yang benar namun nilai yang salah.
  • NotImplementedError: Pengecualian ini muncul ketika sebuah objek seharusnya mendukung sebuah operasi namun belum diterapkan. Kamu seharusnya tidak menggunakan error ini ketika fungsi yang diberikan tidak ditujukan untuk mendukung tipe dari argumen masukan-nya. Pada situasi tersebut, memunculkan keep_asking = True 32 exception jauh lebih tepat.
  • ZeroDivisionError: Exception ini muncul ketika kamu menyediakan angka 0 argumen kedua untuk operasi pembagian atau modulo.
  • FileNotFoundError: Exception ini muncul ketika berkas atau direktori yang program minta tidak ditemukan atau tidak ada.

Seperti nama-nama diatas, kebanyakan exception memiliki nama-nama yang cukup jelas.

Menangani Exception

Kode di awal artikel meminta pengguna untuk memasukkan integer sebagai sebuah input. Jika penggunanya tidak menyediakan masukkan integer, program-nya akan menghentikan eksekusi dan memunculkan nilai error exception-nya. Pada bagian ini, kita akan menulis beberapa kode untuk memberi tahu pengguna bahwa masukkan mereka bukanlah nilai integer yang valid.

Langkah pertama dari prosesnya adalah memasukkan kode yang kamu anggap bisa menimbulkan exception di dalam klausa keep_asking = True 35. Langkah selanjutnya adalah menggunakan keyword keep_asking = True 36 untuk menangani exception yang terjadi pada kode di atas. Kode yang dimodifikasi untuk masukkan penggunanya akan tampah seperti berikut:

1keep_asking = True 23while keep_asking: 4keep_asking = True 55keep_asking = True 7keep_asking = True 8keep_asking = True 920212223

Apa yang terjadi di sini adalah program-nya mencoba untuk mengeksekusi kodenya di dalam klausa keep_asking = True 35. Jika tidak ada exception yang muncul, prgoramnya kan melewati klause keep_asking = True 36 dan sisa kode-nya akan dieksekusi secara normal. Jika sebuah exception muncul, program-nya akan melewatkan sisa kode di dalam klausa keep_asking = True 35 dan tipe dari exception-nya akan dicocokkan dengan nama exception setelah keyword keep_asking = True 36. Dalam kasus yang cocok, kode di dalam klausa keep_asking = True 36 akan dieksekusi terlebih dahulu dan sisa setelah klausa keep_asking = True 35 akan dieksekusi secara normal.

Ketika kamu memasukkan sebuah integer sebagai masukkannya, program-nya memberikanmu hasil akhir dari pembagian. Ketika nilai non-integral disediakan, program-nya akan mencetak sebuah pesan memintamu untuk mencoba dan memasukkan sebuah integer lagi. Ingat kali ini, programnya tidak akan keluar secara paksa saat kamu memasukkan nilai yang tidak valid.

Kamu bisa memiliki banyak klausa keep_asking = True 36 untuk menangai aneka exceptions. Tolong diingat bahwa handler hanya akan menangani exception yang terjadi dan berkoreponsi dengan klausa keep_asking = True 35. Mereka tidak akan menangani exception apapun yang muncul di handler exception yang lainnya.

Kamu juga bisa menangani banyak exception menggunakan satu klausa keep_asking = True 36 dengan melwatkan exception tersebut ke klausa sebagai sebuah keep_asking = True 46.

125227329

Pada akhirnya, kamu juga bisa meninggalkan nama dari exceptionnya setelah keyword keep_asking = True 36. Pada umumnya ini tidak direkomendasikan karena sekarang kode-nya akan mengejar semua exception dan menangani mereka dengan cara yang sama. Ini tidak optimal karena kamu akan menangani seuah keep_asking = True 32 exception dengan cara yang sama dengan saat kamu menangani sebuah keep_asking = True 49 exception. Saat menangani exception, akan lebih baik untuk menjadi se-spesifik mungkin dan hanya menangkap apa yang bisa kamu tangani.

Satu penggunaan yang mungkin untuk menangkap semua exception adalah dengan mencetak semua exception error di layar seperti pada kode berikut:

1312333436538keep_asking = True 8while keep_asking: 020while keep_asking: 222while keep_asking: 4while keep_asking: 5while keep_asking: 6

Menggunakan Klause Else

Kamu juga bisa menggunakan sebuah klausa keep_asking = True 50 di dalam pernyataan keep_asking = True 51. Klausa keep_asking = True 50 diperuntukkan untuk mengandung kode yang perlu dieksekusi jika klause keep_asking = True 35 tidak memunculkan exception apapun. Ini bisa jadi berguna untuk memastikan bahwa kamu tidak menambahkan kode apapun ke blok keep_asking = True 35 yang memiliki exception yang tidak ingin kamu tangkap. Satu hal yang perlu disebut adalah bahwa jika kamu memutuskan untuk menggunakan sebuah klausa keep_asking = True 50, kamu harus memasukkan-nya setelah semua klausa keep_asking = True 36 namun sebelum blok keep_asking = True 57.

Pada kasus kita, kita bisa memindahkan baris yang mencetak hasilkan ke pembagian kita di dalam blok keep_asking = True 50.

1keep_asking = True 23while keep_asking: 4keep_asking = True 55keep_asking = True 7keep_asking = True 821204922 x = int(input("Enter a number: ")) 1while keep_asking: 5keep_asking = True 9

Membersihkan Menggunakan Klausa Finally

Mari katakan kamu harus menulis beberapa kode di dalam blok keep_asking = True 35 yang diperuntukkan untuk melalukan sebuah tugas dengan menggunakan jumlah resource yang besar. Penting untuk melepas resource tersebut kembali ketika kamu selesai menggunakannya. Ini bisa diraih dengan mudah dengan menggunakan klause keep_asking = True 57.

Kode di dalam klausa keep_asking = True 57 selalu dieksekusi terlepas dari baik blok keep_asking = True 35 memunculkan exception maupun tidak.

1keep_asking = True 23while keep_asking: 4keep_asking = True 55keep_asking = True 7keep_asking = True 821204922 x = int(input("Enter a number: ")) 1while keep_asking: 5keep_asking = True 9 print("Dividing 50 by", x,"will give you :", 50/x) 1 print("Dividing 50 by", x,"will give you :", 50/x) 2 print("Dividing 50 by", x,"will give you :", 50/x) 3 print("Dividing 50 by", x,"will give you :", 50/x) 4

Jika ada klausa keep_asking = True 36 yang dispesifikasikan tidak menangani exception yang muncul, exception yang sama akan dimunculkan kembali setelah eksekusi kode di dalam blok keep_asking = True 57.

Contoh yang Lebih Rumit

Pada bagian ini, kita akan menulis sebuah program untuk menangani aneka exceptions. Hanya seperti contoh-contoh sebelumnya, kita akan melakukan beberapa operasi matematis. Namun, kali ini kita akan mengambil beberapa input dari sebuah list.

Kode berikut mengecek dua exceptions, keep_asking = True 32 dan keep_asking = True 33. Blok keep_asking = True 50 diugnakan untuk mencetak faktorial-nya. Kamu bisa lihat di output-nya bahwa kode-nya hanya dieksekusi ketika tidak ada exception muncul.

13123 print("Dividing 50 by", x,"will give you :", 50/x) 94512keep_asking = True 8keep_asking = True 520162218while keep_asking: 5keep_asking = True 00 print("Dividing 50 by", x,"will give you :", 50/x) 121 print("Dividing 50 by", x,"will give you :", 50/x) 3keep_asking = True 04keep_asking = True 05 x = int(input("Enter a number: ")) 1keep_asking = True 07keep_asking = True 08keep_asking = True 09 print("Dividing 50 by", x,"will give you :", 50/x) 2keep_asking = True 11keep_asking = True 12

Kode di atas menghasilkan output berikut:

1keep_asking = True 142keep_asking = True 1634keep_asking = True 195keep_asking = True 16keep_asking = True 820keep_asking = True 2422keep_asking = True 16while keep_asking: 5 print("Dividing 50 by", x,"will give you :", 50/x) 1keep_asking = True 29 print("Dividing 50 by", x,"will give you :", 50/x) 3keep_asking = True 16

Hal lain yang penting untuk diperhatikan adalah bahwa kode di dalam klausa keep_asking = True 57 dieksekusi untuk tiap item dalam list.

Hal Terkahir

Saya harap panduan ini akan membantumu memahami penanganan exception di Python. Di samping itu, jangan ragu untuk melihat apa yang tersedia untuk dijual dan dipelajari di marketplace. Dan jangan ragu untuk menanyakan pertanyaan apapun dan menyediakan umpan balik yang berguna menggunakan umpan berikut.

Menangani exception dengan tepat bisa jadi sangat membantu pada situasi dimana kelaur dari sebuah program ketika menerima sebuah input yang tidak diperkirakan tidak dapat dilakukan. Jika kamu punya pertanyaan terkait penanganan exception di Python tolong beri komentar.

Apa itu exception pada python?

Exception adalah objek Python yang mewakili kesalahan.

Apa yang dimaksud try except?

Pernyataan try-except merupakan ekstensi Microsoft ke bahasa C yang memungkinkan aplikasi untuk mendapatkan kontrol atas program ketika terjadi peristiwa yang biasanya menghentikan eksekusi.

Apa itu try dan except di Python?

Try digunakan untuk menguji suatu instruksi. Except untuk menampilkan pesan kesalahan.

Apa penyebab terjadinya suatu pengecualian exceptions di suatu program?

Exception dipicu oleh runtime error, yaitu error atau kesalahan yang terjadi saat program dieksekusi oleh interpreter.

Postingan terbaru

LIHAT SEMUA