Ketika sebuah program Python menemui kesalahan, itu menghentikan eksekusi dari sisa program. Kesalahan dalam Python bisa berupa kesalahan dalam sintaks ekspresi atau pengecualian Python. Kami akan melihat apa pengecualiannya. Selain itu, kita akan melihat perbedaan antara kesalahan sintaksis dan pengecualian dalam tutorial ini. Setelah itu, kita akan belajar tentang mencoba dan mengecualikan blok dan cara mengajukan pengecualian dan membuat pernyataan. Setelah itu, kita akan melihat daftar pengecualian Python
Apa itu Pengecualian?
Pengecualian dalam Python adalah insiden yang terjadi saat menjalankan program yang menyebabkan program reguler dari perintah program terganggu. Ketika kode Python menemukan kondisi yang tidak dapat ditangani, itu memunculkan pengecualian. Sebuah objek dalam Python yang menjelaskan kesalahan disebut pengecualian
Saat kode Python melempar pengecualian, ia memiliki dua opsi. tangani pengecualian segera atau berhenti dan keluar
Pengecualian versus Kesalahan Sintaks
Ketika juru bahasa mengidentifikasi pernyataan yang memiliki kesalahan, kesalahan sintaks terjadi. Pertimbangkan skenario berikut
Kode
Keluaran
if [s != o: ^ SyntaxError: invalid syntax
Panah di keluaran menunjukkan tempat penafsir mengalami kesalahan sintaksis. Ada satu braket yang tidak tertutup dalam kasus ini. Tutup dan jalankan kembali program
Kode
Keluaran
2 string = "Python Exceptions" 4 for s in string: ----> 5 if [s != o]: 6 print[ s ] NameError: name 'o' is not defined_
Kami mengalami error pengecualian setelah menjalankan kode ini. Ketika kode Python yang valid secara sintaksis menghasilkan kesalahan, ini adalah jenis kesalahan yang muncul. Baris terakhir keluaran menentukan nama kode kesalahan pengecualian yang ditemui. Alih-alih hanya menampilkan "kesalahan pengecualian", Python menampilkan informasi tentang jenis kesalahan pengecualian yang terjadi. Itu adalah NameError dalam situasi ini. Python menyertakan beberapa pengecualian bawaan. Namun, Python menawarkan fasilitas untuk membuat pengecualian khusus
Pernyataan Coba dan Kecualikan - Menangkap Pengecualian
Di Python, kami menangkap pengecualian dan menanganinya menggunakan blok kode coba dan kecuali. Klausa try berisi kode yang dapat memunculkan pengecualian, sedangkan klausa kecuali berisi baris kode yang menangani pengecualian. Mari kita lihat apakah kita bisa mengakses indeks dari larik, yang lebih panjang dari larik, dan menangani pengecualian yang dihasilkan
Kode
Keluaran
The index and element from the array is 0 Python The index and element from the array is 1 Exceptions The index and element from the array is 2 try and except Index out of range
Blok kode yang berpotensi menghasilkan kesalahan disisipkan di dalam klausa try pada contoh sebelumnya. Nilai i lebih besar dari 2 upaya untuk mengakses item daftar melebihi panjangnya, yang tidak ada, menghasilkan pengecualian. Klausa kecuali kemudian menangkap pengecualian ini dan mengeksekusi kode tanpa menghentikannya
Cara Menaikkan Pengecualian
Jika suatu kondisi tidak memenuhi kriteria kami tetapi benar menurut juru bahasa Python, kami dapat dengan sengaja memunculkan pengecualian menggunakan kata kunci kenaikan. Kami dapat menggunakan pengecualian khusus sehubungan dengan pernyataan tersebut
Jika kita ingin menggunakan raise untuk menghasilkan exception ketika kondisi tertentu terjadi, kita dapat melakukannya sebagai berikut
Kode
Keluaran
1 num = [3, 4, 5, 7] 2 if len[num] > 3: ----> 3 raise Exception[ f"Length of the given list must be less than or equal to 3 but is {len[num]}" ] Exception: Length of the given list must be less than or equal to 3 but is 4
Implementasi berhenti dan menunjukkan pengecualian kami dalam output, memberikan indikasi tentang apa yang salah
Pernyataan dengan Python
Saat kita selesai memverifikasi program, pernyataan adalah uji konsistensi yang dapat kita aktifkan atau nonaktifkan
Cara paling sederhana untuk memahami pernyataan adalah dengan membandingkannya dengan kondisi jika-maka. Pengecualian dilemparkan jika hasilnya salah saat ekspresi dievaluasi
Penegasan dibuat melalui pernyataan penegasan, yang ditambahkan dalam Python 1. 5 sebagai kata kunci terbaru
Pernyataan biasanya digunakan di awal fungsi untuk memeriksa input yang valid dan di akhir pemanggilan fungsi untuk memeriksa output yang valid
Pernyataan tegas
Python memeriksa ekspresi yang berdekatan, sebaiknya benar ketika menemukan pernyataan tegas. Python melempar pengecualian AssertionError jika hasil ekspresi salah
Sintaks untuk menegaskan klausa adalah -
Python menggunakan ArgumentException, jika pernyataan gagal, sebagai argumen untuk AssertionError. Kita dapat menggunakan klausa try-exception untuk menangkap dan menangani pengecualian AssertionError, tetapi jika tidak, program akan berhenti, dan interpreter Python akan menghasilkan traceback
Kode
Keluaran
7 #Calling function and passing the values ----> 8 print[ square_root[ 36 ] ] 9 print[ square_root[ -36 ] ] Input In [23], in square_root[Number] 3 def square_root[ Number ]: ----> 4 assert [ Number < 0], "Give a positive integer" 5 return Number**[1/2] AssertionError: Give a positive integer_
Coba dengan Klausa Lain
Python juga mendukung klausa lain, yang harus muncul setelah setiap klausa kecuali, di blok coba, dan kecuali. Hanya ketika klausa try gagal memberikan pengecualian, juru bahasa Python melanjutkan ke blok else
Berikut ini contoh klausa try dengan klausa else
Kode
Keluaran
0.25 We cannot divide by zero
Akhirnya Kata Kunci dengan Python
Kata kunci akhirnya tersedia di Python, dan selalu digunakan setelah blok coba-kecuali. Blok kode akhirnya selalu dieksekusi setelah blok percobaan dihentikan secara normal atau setelah blok percobaan diakhiri karena beberapa alasan lain
Berikut adalah contoh kata kunci akhirnya dengan klausa coba-kecuali
Kode
Keluaran
Atepting to divide by zero This is code of finally clause_
Pengecualian Buatan Pengguna
Dengan mewarisi kelas dari pengecualian bawaan yang khas, Python juga memungkinkan kita merancang pengecualian khusus kita
Berikut adalah ilustrasi RuntimeError. Dalam hal ini, kelas yang diturunkan dari RuntimeError dihasilkan. Setelah pengecualian terdeteksi, kami dapat menggunakan ini untuk menampilkan informasi detail tambahan
Kami memunculkan pengecualian yang ditentukan pengguna di blok coba dan kemudian menangani pengecualian di blok kecuali. Contoh kelas EmptyError dibuat menggunakan variabel var
Kode
Keluaran
2 try: ----> 3 raise EmptyError[ "The variable is empty" ] 4 except [EmptyError, var]: EmptyError: The variable is empty
Daftar Pengecualian Python
Berikut adalah daftar lengkap pengecualian bawaan Python
Sr. Tidak. Nama PengecualianDeskripsi Pengecualian1PengecualianSemua pengecualian Python memiliki kelas dasar. 2StopIterationJika metode next[] mengembalikan null untuk iterator, pengecualian ini akan dimunculkan. 3SystemExitSis. prosedur exit[] menaikkan nilai ini. 4StandardErrorExcluding the StopIteration dan SystemExit, ini adalah kelas dasar untuk semua pengecualian bawaan Python. 5ArithmeticErrorSemua kesalahan perhitungan matematis milik kelas dasar ini. 6OverflowError Pengecualian ini dimunculkan ketika perhitungan melampaui batas maksimum tipe data numerik. 7FloatingPointErrorJika operasi floating-point gagal, pengecualian ini dimunculkan. 8ZeroDivisionErrorUntuk semua tipe data numerik, nilainya dinaikkan setiap kali angka dicoba untuk dibagi dengan nol. 9AssertionErrorJika pernyataan Assert gagal, pengecualian ini dimunculkan. 10AttributeError Pengecualian ini dimunculkan jika referensi variabel atau penetapan nilai gagal. 11EOFErrorKetika titik akhir file didekati, dan juru bahasa tidak mendapatkan nilai input apa pun dengan fungsi raw_input[] atau input[], pengecualian ini dimunculkan. 12ImportError Pengecualian ini muncul jika menggunakan kata kunci impor untuk mengimpor modul gagal. 13KeyboardInterruptJika pengguna menyela eksekusi program, umumnya dengan menekan Ctrl+C, pengecualian ini dimunculkan. 14LookupErrorLookupErrorBase adalah kelas dasar untuk semua kesalahan pencarian. 15IndexError Pengecualian ini dimunculkan ketika indeks yang dicoba untuk diakses tidak ditemukan. 16KeyErrorKetika kunci yang diberikan tidak ditemukan dalam kamus untuk ditemukan, pengecualian ini dimunculkan. 17NameError Pengecualian ini dimunculkan ketika variabel tidak terletak di namespace lokal atau global. 18UnboundLocalErrorException ini dimunculkan saat kita mencoba mengakses variabel lokal di dalam suatu fungsi, dan variabel tersebut belum diberi nilai apa pun. 19EnvironmentErrorSemua pengecualian yang muncul di luar lingkungan Python memiliki kelas dasar ini. 20IOErrorJika tindakan input atau output gagal, seperti saat menggunakan perintah print atau fungsi open[] untuk mengakses file yang tidak ada, pengecualian ini akan dimunculkan. 22SyntaxError Pengecualian ini dimunculkan setiap kali kesalahan sintaks terjadi di program kami. 23IndentationError Pengecualian ini muncul saat kami membuat indentasi yang tidak benar. 24SystemExitPengecualian ini dimunculkan saat sistem. metode exit[] digunakan untuk menghentikan interpreter Python. Pengurai keluar jika situasinya tidak ditangani dalam kode. 25TypeErrorPengecualian ini dimunculkan setiap kali tindakan atau fungsi yang tidak kompatibel dengan tipe data dicoba untuk dijalankan. 26ValueError Pengecualian ini dimunculkan jika parameter untuk metode bawaan untuk tipe data tertentu adalah tipe yang benar tetapi telah diberi nilai yang salah. 27RuntimeError Pengecualian ini dimunculkan ketika kesalahan yang terjadi selama eksekusi program tidak dapat diklasifikasikan. 28NotImplementedErrorJika fungsi abstrak yang harus ditentukan pengguna dalam kelas yang diwariskan tidak ditentukan, pengecualian ini akan dimunculkanRingkasan
Kita belajar tentang berbagai metode untuk memunculkan, menangkap, dan menangani pengecualian Python setelah mempelajari perbedaan antara kesalahan sintaksis dan pengecualian. Kami belajar tentang klausa ini dalam tutorial ini