Apa itu Pengecualian di Python?
Pengecualian adalah kesalahan yang terjadi pada saat menjalankan program. Namun, saat menjalankan program, Python menghasilkan pengecualian yang harus ditangani untuk menghindari program Anda macet. Dalam bahasa Python, pengecualian dipicu secara otomatis pada kesalahan, atau mereka dapat dipicu dan dicegat oleh kode Anda.
Pengecualian menunjukkan bahwa, meskipun peristiwa dapat terjadi, jenis peristiwa ini jarang terjadi. Jika metode tidak dapat menangani pengecualian, metode ini akan dilemparkan ke fungsi pemanggilnya. Akhirnya, ketika pengecualian dibuang dari fungsi utama, program akan dihentikan secara tiba-tiba.
Dalam tutorial penanganan luar biasa Python ini, Anda akan belajar:
- Apa itu Pengecualian di Python?
- Contoh Umum Pengecualian
- Mengapa Anda harus menggunakan Pengecualian?
- Aturan Pengecualian
- Mekanisme Penanganan yang Luar Biasa
- Pernyataan Uji Coba
- Pernyataan menangkap
- Pernyataan Raise
- Kesalahan Python Penting
- Pengecualian Python Penting Lainnya
- Kesalahan vs. Pengecualian
Contoh Umum Pengecualian:
- Divisi oleh Nol
- Mengakses file yang tidak ada.
- Penambahan dua jenis yang tidak kompatibel
- Mencoba mengakses indeks urutan yang tidak ada
- Menghapus tabel dari server database terputus.
- Penarikan ATM lebih dari jumlah yang tersedia
Mengapa Anda harus menggunakan Pengecualian?
Berikut alasan penggunaan pengecualian dengan Python:
- Penanganan pengecualian memungkinkan Anda untuk memisahkan kode penanganan kesalahan dari kode normal.
- Pengecualian adalah objek Python yang merepresentasikan kesalahan.
- Seperti halnya komentar kode, pengecualian membantu Anda mengingatkan diri sendiri tentang apa yang diharapkan program.
- Ini menjelaskan kode dan meningkatkan keterbacaan.
- Memungkinkan Anda untuk merangsang konsekuensi saat penanganan kesalahan terjadi di satu tempat dan dengan satu cara.
- Pengecualian adalah metode yang nyaman untuk menangani pesan kesalahan.
- Dengan Python, Anda bisa memunculkan pengecualian dalam program dengan menggunakan metode pengecualian kenaikan.
- Menaikkan eksepsi membantu Anda menghentikan eksekusi kode saat ini dan mengembalikan eksepsi ke ekspektasi hingga ditangani.
- Memproses pengecualian untuk komponen yang tidak dapat menanganinya secara langsung.
Aturan Pengecualian
Berikut adalah beberapa aturan penting dari penanganan pengecualian Python:
- Pengecualian harus objek kelas
- Untuk kelas pengecualian, Anda dapat menggunakan pernyataan try dengan klausa pengecualian yang menyebutkan kelas tertentu.
- Bahkan jika pernyataan atau ekspresi benar secara sintaksis, itu mungkin menampilkan kesalahan ketika upaya dilakukan untuk mengeksekusinya.
- Kesalahan yang ditemukan selama eksekusi disebut pengecualian, dan tidak fatal tanpa syarat.
Mekanisme Penanganan yang Luar Biasa
Penanganan pengecualian dikelola oleh 5 kata kunci berikut:
- mencoba
- menangkap
- akhirnya
- melemparkan
Pernyataan Uji Coba
Pernyataan percobaan menyertakan kata kunci coba, diikuti oleh titik dua (:) dan rangkaian kode di mana pengecualian dapat terjadi. Ini memiliki satu atau lebih klausul.
Selama eksekusi pernyataan percobaan, jika tidak ada pengecualian yang terjadi, interpreter mengabaikan penangan pengecualian untuk pernyataan percobaan khusus itu.
Dalam kasus, jika ada pengecualian terjadi dalam rangkaian percobaan, rangkaian percobaan kedaluwarsa dan kontrol program ditransfer ke penangan kecuali penangan yang mengikuti rangkaian percobaan.
Syntax:try:statement(s)
Pernyataan menangkap
Catch block mengambil satu argumen pada satu waktu, yang merupakan jenis pengecualian yang mungkin ditangkap. Argumen ini dapat berkisar dari jenis pengecualian tertentu yang dapat bervariasi hingga kategori pengecualian yang mencakup semua.
Aturan untuk blok tangkapan:
- 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 tangkap.
- Kode penanganan pengecualian ditulis di antara dua {} kurung kurawal.
- Anda dapat menempatkan beberapa blok tangkapan dalam satu blok percobaan.
- Anda dapat menggunakan blok tangkap hanya setelah blok percobaan.
- Semua blok catch harus diurutkan dari subclass ke pengecualian superclass.
Contoh:
try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}
Akhirnya Blokir
Akhirnya blok selalu dijalankan terlepas dari pengecualian yang dilemparkan atau tidak. Kata kunci terakhir memungkinkan Anda membuat blok kode yang mengikuti blok coba-tangkap.
Akhirnya, klausa bersifat opsional. Ini dimaksudkan untuk menentukan tindakan pembersihan yang harus dilakukan di semua kondisi.
try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt
Akhirnya, klausa dijalankan sebelum pernyataan percobaan.
Pernyataan Raise
Pernyataan kenaikan menentukan argumen yang menginisialisasi objek pengecualian. Di sini, koma mengikuti nama pengecualian, dan argumen atau tuple argumen yang mengikuti koma.
Sintaksis:
raise [Exception [, args [, traceback]]]
Dalam sintaksis ini, argumennya bersifat opsional, dan pada saat eksekusi, nilai argumen pengecualian selalu tidak ada.
Contoh:
Pengecualian Python dapat berupa nilai apa pun seperti string, kelas, angka, atau objek. Sebagian besar pengecualian ini yang dimunculkan oleh inti Python adalah kelas dengan argumen yang merupakan turunan dari kelas tersebut.
Kesalahan Python Penting
Jenis Kesalahan | Deskripsi |
ArithmeticError | ArithmeticError bertindak sebagai kelas dasar untuk semua pengecualian aritmatika. Dibesarkan untuk kesalahan dalam operasi aritmatika. |
ImportError | ImportError dimunculkan saat Anda mencoba mengimpor modul yang tidak ada. Pengecualian semacam ini terjadi jika Anda melakukan kesalahan pengetikan pada nama modul atau modul yang tidak ada di jalur standar. |
IndexError | IndexErroris dimunculkan saat Anda mencoba merujuk urutan yang berada di luar jangkauan. |
KeyError | Ketika kunci tertentu tidak ditemukan dalam kamus, pengecualian KeyError dimunculkan. |
NameError | NameError dimunculkan ketika sebuah nama dirujuk dalam kode yang tidak pernah ada di namespace lokal atau global. |
ValueError | Kesalahan nilai dimunculkan ketika fungsi atau operasi bawaan menerima argumen yang mungkin dari jenis yang benar tetapi tidak memiliki nilai yang sesuai. |
EOFerror | Jenis kesalahan 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- | Jenis kesalahan ini muncul ketika operasi input / output gagal. |
kesalahan sintaks | SyntaxErrors dimunculkan ketika ada kesalahan dalam sintaks Python. |
IndentationError | Kesalahan ini muncul saat indentasi tidak ditentukan dengan benar |
Pengecualian Python Penting Lainnya
Pengecualian | Deskripsi |
ArithmeticException | Kesalahan aritmatika, seperti bagi-dengan-nol. |
ArraylndexOutOfBoundsException | Indeks array di luar batas. |
ArrayStoreException | Assignment membantu Anda ke elemen array dari tipe yang tidak kompatibel. |
ClassCastException | Pemeran tidak valid |
MlegalMonitorStateException | Operasi monitor ilegal, seperti menunggu di utas yang tidak terkunci. |
MlegalStateException | Lingkungan atau aplikasi dalam keadaan salah. |
ClassNotFoundException | Kelas tidak ditemukan. |
CloneNotSupportedException | Mencoba mengkloning objek yang tidak mengimplementasikan antarmuka Cloneable. |
AccessException ilegal | Akses ke kelas ditolak. |
InstantiationException | Terjadi saat Anda mencoba membuat objek dari antarmuka atau kelas abstrak. |
CloneNotSupportedException | Mencoba menggandakan objek yang tidak mengimplementasikan antarmuka. |
Kesalahan vs. Pengecualian
Kesalahan | Pengecualian |
Semua kesalahan dalam Python adalah jenis yang tidak dicentang. | Pengecualian mencakup jenis yang dicentang dan yang tidak. |
Kesalahan terjadi pada waktu proses yang tidak diketahui kompilator. | Pengecualian dapat dipulihkan dengan menanganinya dengan bantuan blok coba-tangkap. |
Kesalahan sebagian besar disebabkan oleh lingkungan tempat aplikasi berjalan. | Aplikasi itu sendiri menyebabkan pengecualian. |
Contoh: OutofMemoryError | Contoh: Pengecualian Tercentang, Pengecualian SQL, NullPointerException, dll. |
Ringkasan
- Pengecualian adalah kesalahan yang terjadi selama eksekusi program.
- Pengecualian menunjukkan bahwa, meskipun peristiwa dapat terjadi, jenis peristiwa ini jarang terjadi.
- Contoh Umum Pengecualian adalah 1) Pembagian oleh Nol, 2) Mengakses file yang tidak ada, 3) Penambahan dua jenis yang tidak kompatibel.
- Pengecualian adalah objek Python yang merepresentasikan kesalahan.
- Pernyataan percobaan menyertakan kata kunci coba, diikuti oleh titik dua (:) dan rangkaian kode di mana pengecualian dapat terjadi. Ini memiliki satu atau lebih klausul.
- Catch block mengambil satu argumen pada satu waktu, yang merupakan jenis pengecualian yang mungkin ditangkap.
- Pernyataan kenaikan menentukan argumen yang menginisialisasi objek pengecualian.
- Akhirnya, blok selalu dijalankan terlepas dari pengecualian dilempar atau tidak.