Last Updated on March 9, 2022 by
Error dalam pengkodean adalah hal yang lumrah terjadi, begitu pula pada program Python. Error dalam Python dapat terdiri dari dua jenis yaitu Syntax Error dan exception. Error adalah masalah dalam suatu program yang menyebabkan program akan menghentikan eksekusi. Di sisi lain, Exception dimunculkan ketika beberapa peristiwa internal terjadi yang mengubah aliran normal program. Pada artikel ini, kami akan membahas tentang Python Exception. Jika Anda ingin tahu secara lebih detail, simak terus artikel ini sampai akhir.
Table of Contents
Pengertian Python Exception
Python memiliki banyak built-in Exception yang muncul saat program Anda mengalami error atau error dalam program Python yang Anda buat. Ketika Exception ini terjadi, interpreter Python menghentikan proses saat ini dan meneruskannya ke proses panggilan hingga ditangani. Jika tidak ditangani, program akan macet.
Sebagai contoh, mari kita perhatikan sebuah program di mana kita memiliki fungsi A yang memanggil fungsi B, yang pada gilirannya memanggil fungsi C. Jika Exception terjadi pada fungsi C tetapi tidak ditangani di C, Exception diteruskan ke B dan kemudian ke A.
Jika tidak pernah ditangani, pesan error ditampilkan dan program kami tiba-tiba berhenti secara tidak terduga. Python menyediakan dua fitur yang sangat penting untuk menangani kesalahan tak terduga dalam program Python Anda dan untuk menambahkan kemampuan debugging di dalamnya
- Python Exception Handling
Python Exception Handling adalah salah satu Python Exception yang banyak digunakan. Artikel ini akan membahas lebih banyak tentang Python Exception Handling.
- Assertions
Assertions adalah sanity-check yang dapat Anda nyalakan atau matikan ketika Anda selesai dengan pengujian program.
Ada beberapa metode yang digunakan untuk melakukan Python Exception Handling adalah yaitu:
- Catching Exception
- Catching Spesific Exception
- Raising Exception
- Python try with else clause
- Python try…finally
Berikut ini adalah penjelasan dari Python Exception Handling yang kami sebutkan di atas tersebut.
Catching Exception
Dalam Python, Exception dapat ditangani menggunakan pernyataan try. Operasi kritis yang dapat memunculkan eksepsi ditempatkan di dalam klausa try. Kode yang menangani Python Exception ditulis dalam klausa except.
Dengan demikian kita dapat memilih operasi apa yang akan dilakukan setelah kita menangkap Python Exception. Berikut adalah contoh sederhana.
# import modul sys untuk mendapatkan jenis pengecualian import sys newList = ['n', 0, 6] for data in newList: try: print("Hasilnya :", data) x = 1/int(data) break except: print("Maaf!", sys.exc_info()[0]) print("Data selanjutnya.") print() print("Inversenya", data, "adalah", x)
Output
Hasilnya : n Maaf! <class 'ValueError'> Data selanjutnya. Hasilnya : 0 Maaf! <class 'ZeroDivisionError'> Data selanjutnya. Hasilnya : 6
Dalam program ini, kita mengulang data dari daftar newList. Seperti disebutkan sebelumnya, bagian yang dapat menyebabkan Exception ditempatkan di dalam blok try.
Jika tidak ada Exception yang terjadi, blok except dilewati dan aliran normal berlanjut (untuk nilai terakhir). Tetapi jika Exception terjadi, itu ditangkap oleh blok except (nilai pertama dan kedua).
Di sini, kami mencetak nama Exception menggunakan fungsi exc_info() di dalam modul sys. Kita dapat melihat bahwa a menyebabkan ValueError dan 0 menyebabkan ZeroDivisionError.
Karena setiap Python Exception mewarisi dari kelas Exception dasar, kita juga dapat melakukan tugas di atas dengan cara berikut:
# import modul sys untuk mendapatkan jenis pengecualian import sys newList = ['n', 0, 6] for data in newList: try: print("Hasilnya :", data) x = 1/int(data) break except Exception as e: print("Maaf!", e.__class__) print("Data selanjutnya.") print() print("Inversenya", data, "adalah", x)
Program di atas akan menghasilkan output yang sama dengan program di atas.
Catching Spesific Exception
Dalam contoh di atas, kami tidak menyebutkan Exception khusus dalam klausa except. Ini bukan praktik pemrograman yang baik karena akan menangkap semua Exception dan menangani setiap kasus dengan cara yang sama. Kita dapat menentukan Exception mana yang harus ditangkap oleh klausa except.
Klausa try dapat memiliki sejumlah klausa except untuk menangani Exception yang berbeda, namun, hanya satu yang akan dieksekusi jika Exception terjadi.
Kita dapat menggunakan tupel nilai untuk menentukan beberapa Exception dalam klausa except. Berikut adalah contoh kode semu.
try: # kondisi pass except ValueError: # menangani ValueError exception pass except (TypeError, ZeroDivisionError): # menangani beberapa exceptions # TypeError and ZeroDivisionError pass except: # menangani semua exceptions lainnya pass
Raising Exception
Dalam pemrograman Python, Exception dimunculkan ketika kesalahan terjadi saat runtime. Kami juga dapat meningkatkan Exception secara manual menggunakan kata kunci kenaikan.
Kami secara opsional dapat meneruskan nilai ke Exception untuk mengklarifikasi mengapa Exception itu muncul.
>>> raise KeyboardInterrupt Traceback (most recent call last): ... KeyboardInterrupt >>> raise MemoryError("Contoh") Traceback (most recent call last): ... MemoryError: Contoh >>> try: ... x = int(input("Masukkan angka positif: ")) ... if x <= 0: ... raise ValueError("Bukan angka positif!") ... except ValueError as err: ... print(err) ... Masukkan angka positif: -5 Bukan angka positif!
Python try with else clause
Dalam beberapa situasi, Anda mungkin ingin menjalankan blok kode tertentu jika blok kode di dalam try berjalan tanpa kesalahan. Untuk kasus ini, Anda dapat menggunakan kata kunci else opsional dengan pernyataan try.
Perlu diingat juga Python Exception dalam klausa else tidak ditangani oleh klausa sebelumnya except. Mari kita lihat sebuah contoh di bawah ini:
Output jika kita memasukkan angka ganjil
Masukkan angka: 5 Bukan angka genap!
Jika kita memasukkan angka genap, timbal balik dihitung dan ditampilkan.
Masukkan angka: 8 0.125
Namun, jika kita melewati 0, kita mendapatkan ZeroDivisionError karena blok kode di dalam else tidak ditangani oleh sebelumnya “except”.
Masukkan angka: 0 Traceback (most recent call last): File "<string>", line 7, in <module> x = 1/num ZeroDivisionError: division by zero
Python try…finally
Pernyataan try di Python dapat memiliki klausa last opsional. Klausa ini dijalankan apa pun yang terjadi, dan umumnya digunakan untuk melepaskan sumber daya eksternal. Misalnya, kita mungkin terhubung ke pusat data jarak jauh melalui jaringan atau bekerja dengan file atau Graphical User Interface (GUI).
Dalam semua keadaan ini, kita harus membersihkan sumber daya sebelum program berhenti apakah berhasil dijalankan atau tidak. Tindakan ini (menutup file, GUI, atau memutuskan sambungan dari jaringan) dilakukan di klausa last untuk menjamin eksekusi. Berikut adalah contoh operasi file untuk menggambarkan hal ini.
try: file = open("contoh.txt",encoding = 'utf-8') finally: f.close()
Jenis konstruksi ini memastikan bahwa file ditutup bahkan jika Exception terjadi selama eksekusi program.
Itulah penjelasan tentang Python Exception yang perlu Anda ketahui. Python Exception Handling adalah hal yang perlu Anda pahami sebagai seorang programmer Python, agar masalah atau error dalam program Anda dapat ditangani dengan baik.
Jika Anda ingin belajar lebih banyak terkait dengan Python Programming, kunjungi Tutorial Python di Codekey. Klik linknya di sini (https://codekey.id/) dan dapatkan materi Python secara gratis dan dapat dipelajari kapan saja dan di mana saja.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.