Python Penanganan Pengecualian: coba, tangkap, akhirnya & naikkan [Contoh]
Apa yang dimaksud dengan Penanganan Pengecualian Python?
Pengecualian adalah kesalahan yang terjadi pada saat eksekusi suatu program. Namun, saat menjalankan suatu program, Python menghasilkan pengecualian yang harus ditangani untuk menghindari program Anda mogok. Di dalam Python bahasa, pengecualian terpicu secara otomatis pada kesalahan, atau dapat dipicu dan disadap oleh kode Anda.
Pengecualian menunjukkan bahwa, meskipun peristiwa tersebut dapat terjadi, peristiwa jenis ini jarang terjadi. Ketika metode tidak mampu menangani pengecualian, metode tersebut dilemparkan ke fungsi pemanggilnya. Akhirnya, ketika pengecualian dikeluarkan dari fungsi utama, program dihentikan secara tiba-tiba.
Contoh Umum Pengecualian
- Pembagian dengan Nol
- Mengakses file yang tidak ada.
- Penambahan dua tipe yang tidak kompatibel
- Mencoba mengakses indeks urutan yang tidak ada
- Menghapus tabel dari server database yang terputus.
- Penarikan ATM lebih dari jumlah yang tersedia
Mengapa Anda harus menggunakan Pengecualian?
Berikut adalah alasan untuk menggunakan pengecualian di Python:
- Penanganan pengecualian memungkinkan Anda memisahkan kode penanganan kesalahan dari kode normal.
- Pengecualiannya adalah a Python obyek yang mewakili kesalahan.
- Seperti halnya komentar kode, pengecualian membantu Anda mengingatkan diri sendiri tentang apa yang diharapkan oleh program.
- Ini memperjelas kode dan meningkatkan keterbacaan.
- Memungkinkan Anda merangsang konsekuensi saat penanganan kesalahan dilakukan di satu tempat dan dalam satu cara.
- Pengecualian adalah metode yang mudah untuk menangani pesan kesalahan.
- In Python, Anda dapat memunculkan pengecualian dalam program dengan menggunakan metode kenaikan pengecualian.
- Menaikkan pengecualian membantu Anda menghentikan eksekusi kode saat ini dan mengembalikan pengecualian ke ekspektasi hingga ditangani.
- Memproses pengecualian untuk komponen yang tidak dapat menanganinya secara langsung.
Aturan Pengecualian
Berikut adalah beberapa aturan penting Python penanganan pengecualian:
- Pengecualian harus berupa objek kelas
- Untuk pengecualian kelas, Anda dapat menggunakan pernyataan try dengan klausa kecuali yang menyebutkan kelas tertentu.
- Sekalipun suatu pernyataan atau ekspresi benar secara sintaksis, pernyataan atau ekspresi tersebut mungkin menampilkan kesalahan saat dilakukan upaya untuk mengeksekusinya.
- Kesalahan yang ditemukan selama eksekusi disebut pengecualian, dan kesalahan tersebut tidak berakibat fatal.
Python Mekanisme Penanganan Pengecualian
Penanganan pengecualian dikelola oleh 5 kata kunci berikut:
- mencoba
- menangkap
- akhirnya
- melemparkan
Python Coba Pernyataan
Pernyataan try mencakup kata kunci try, diikuti dengan titik dua (:) dan serangkaian kode di mana pengecualian dapat terjadi. Ia mempunyai satu atau lebih klausa.
Selama eksekusi pernyataan try, jika tidak ada pengecualian yang terjadi, interpreter akan mengabaikan penangan pengecualian untuk pernyataan try spesifik tersebut.
Jika terjadi pengecualian dalam rangkaian percobaan, rangkaian percobaan tersebut akan kedaluwarsa dan kontrol program akan berpindah ke pengendali kecuali yang cocok setelah rangkaian percobaan tersebut.
Syntax: try: statement(s)
Pernyataan tangkapan
Blok catch mengambil satu argumen dalam satu waktu, yang merupakan jenis pengecualian yang kemungkinan besar akan ditangkap. Argumen-argumen ini dapat berkisar dari jenis pengecualian tertentu yang dapat bervariasi hingga kategori pengecualian yang mencakup semua hal.
Aturan untuk menangkap blok:
- Anda dapat menentukan blok catch dengan menggunakan kata kunci catch
- Parameter Catch Exception selalu diapit tanda kurung
- Itu selalu mewakili jenis pengecualian yang menangani blok catch.
- Kode penanganan pengecualian ditulis di antara dua kurung kurawal {}.
- Anda dapat menempatkan beberapa blok tangkapan dalam satu blok percobaan.
- Anda dapat menggunakan blok catch hanya setelah blok try.
- Semua blok tangkapan harus diurutkan dari subkelas hingga pengecualian superkelas.
Contoh:
try } catch (ArrayIndexOutOfBoundsException e) { System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) { System.err.printin("Caught second " + e.getMessage()); }
Akhirnya Pernyataan masuk Python
Akhirnya blok selalu dieksekusi terlepas dari pengecualian yang dilempar atau tidak. Kata kunci terakhir memungkinkan Anda membuat blok kode yang mengikuti blok coba-tangkap.
Terakhir, klausa bersifat opsional. Hal ini dimaksudkan untuk menentukan tindakan pembersihan yang harus dilakukan dalam semua kondisi.
try: raise KeyboardInterrupt finally: print 'welcome, world!' Output Welcome, world! KeyboardInterrupt
Akhirnya, klausa dieksekusi sebelum pernyataan try.
Angkat Pernyataan di Python
Pernyataan raise menentukan argumen yang menginisialisasi objek pengecualian. Di sini, koma mengikuti nama pengecualian, dan argumen atau tupel argumen mengikuti koma.
sintaks:
raise [Exception [, args [, traceback]]]
Dalam sintaksis ini, argumen bersifat opsional, dan pada saat eksekusi, nilai argumen pengecualian selalu tidak ada.
Contoh:
A Python pengecualian dapat berupa nilai apa pun seperti string, kelas, angka, atau objek. Sebagian besar pengecualian ini diajukan oleh Python inti adalah kelas dengan argumen yang merupakan turunan dari kelas tersebut.
penting Python Errors
Jenis Kesalahan | Uraian Teknis |
---|---|
Kesalahan Aritmatika | ArithmeticError bertindak sebagai kelas dasar untuk semua pengecualian aritmatika. Ini dimunculkan untuk kesalahan dalam operasi aritmatika. |
Kesalahan Impor | ImportError muncul ketika Anda mencoba mengimpor modul yang tidak ada. Pengecualian semacam ini terjadi jika Anda membuat kesalahan pengetikan nama modul atau modul yang tidak ada di jalur standar. |
Kesalahan Indeks | IndexError muncul ketika Anda mencoba merujuk urutan yang berada di luar jangkauan. |
Kesalahan Kunci | Ketika kunci tertentu tidak ditemukan dalam kamus, pengecualian KeyError dimunculkan. |
NamaKesalahan | NameError muncul ketika sebuah nama dirujuk dalam kode yang tidak pernah ada di namespace lokal atau global. |
NilaiError | Kesalahan nilai muncul ketika fungsi atau operasi bawaan menerima argumen yang mungkin bertipe benar tetapi tidak memiliki nilai yang sesuai. |
kesalahan EO | Kesalahan semacam ini muncul ketika salah satu fungsi bawaan (input() atau raw_input()) mencapai kondisi EOF tanpa membaca data apa pun. |
ZeroDivisonError | Jenis kesalahan ini muncul ketika pembagian atau modul dengan nol terjadi untuk semua tipe numerik. |
IOError- | Kesalahan semacam ini muncul ketika operasi input/output gagal. |
kesalahan sintaks | SyntaxErrors dimunculkan bila ada kesalahan pada Python sintaks. |
Kesalahan Indentasi | Kesalahan ini muncul ketika indentasi tidak ditentukan dengan benar |
Penting lainnya Python Pengecualian
Pengecualian | Uraian Teknis |
---|---|
Pengecualian Aritmatika | Kesalahan aritmatika, seperti pembagian dengan nol. |
ArraylndexOutOfBoundsException | Indeks array berada di luar batas. |
ArrayStoreException | Penugasan membantu Anda ke elemen array dari tipe yang tidak kompatibel. |
Pengecualian KelasCast | Pemeran tidak valid |
MlegalMonitorStateException | Pengoperasian monitor ilegal, seperti menunggu di thread yang tidak terkunci. |
MlegalStateException | Lingkungan atau aplikasi berada dalam kondisi yang salah. |
Pengecualian ClassNotFound | Kelas tidak ditemukan. |
CloneNotSupportedException | Mencoba mengkloning objek yang tidak mengimplementasikan antarmuka Cloneable. |
Pengecualian Akses Ilegal | Akses ke kelas ditolak. |
Pengecualian Instansiasi | Terjadi ketika Anda mencoba membuat objek antarmuka atau kelas abstrak. |
CloneNotSupportedException | Mencoba mengkloning objek yang tidak mengimplementasikan antarmuka. |
Kesalahan vs. Pengecualian
error | Pengecualian |
---|---|
Semua kesalahan masuk Python adalah tipe yang tidak dicentang. | Pengecualian mencakup tipe yang dicentang dan tidak dicentang. |
Kesalahan terjadi pada waktu proses yang tidak diketahui oleh kompiler. | Pengecualian dapat dipulihkan dengan menanganinya menggunakan bantuan blok coba-tangkap. |
Kesalahan sebagian besar disebabkan oleh lingkungan tempat aplikasi berjalan. | Aplikasi itu sendiri menyebabkan pengecualian. |
contoh: OutofMemoryError |
contoh: Pengecualian yang Diperiksa, pengecualian SQL, NullPointerException, dll. |
Ringkasan
- Pengecualian adalah kesalahan yang terjadi selama eksekusi suatu program.
- Pengecualian menunjukkan bahwa, meskipun peristiwa tersebut dapat terjadi, peristiwa jenis ini jarang terjadi.
- Contoh Umum Pengecualian adalah 1) Pembagian dengan Nol, 2) Mengakses file yang tidak ada, 3) Penambahan dua tipe yang tidak kompatibel.
- Pengecualiannya adalah a Python objek yang mewakili kesalahan.
- Pernyataan try mencakup kata kunci try, diikuti dengan titik dua (:) dan serangkaian kode di mana pengecualian dapat terjadi. Ia mempunyai satu atau lebih klausa.
- Blok catch mengambil satu argumen dalam satu waktu, yang merupakan jenis pengecualian yang kemungkinan besar akan ditangkap.
- Pernyataan raise menentukan argumen yang menginisialisasi objek pengecualian.
- Terakhir, blok selalu dijalankan terlepas dari pengecualian yang dilempar atau tidak.