Apa arti pengecualian dalam python?

Saat terjadi kesalahan, atau pengecualian seperti yang kita sebut, Python biasanya akan berhenti dan menghasilkan pesan kesalahan

Pengecualian ini dapat ditangani dengan menggunakan pernyataan try

Contoh

Blok try akan menghasilkan pengecualian, karena x tidak ditentukan

mencoba
cetak(x)
kecuali
print("Terjadi pengecualian")

Cobalah sendiri "

Karena blok try menimbulkan kesalahan, blok exception akan dieksekusi

Tanpa try block, program akan crash dan memunculkan error

Contoh

Pernyataan ini akan menimbulkan kesalahan, karena ________10______ tidak didefinisikan

Cobalah sendiri "


Banyak Pengecualian

Anda dapat menentukan blok pengecualian sebanyak yang Anda inginkan, mis. g. jika Anda ingin mengeksekusi blok kode khusus untuk jenis kesalahan khusus

Contoh

Cetak satu pesan jika blok coba memunculkan NameError dan satu lagi untuk kesalahan lainnya

mencoba
cetak(x)
kecuali NameError
print("Variabel x tidak didefinisikan")
kecuali
print("Ada yang tidak beres")

Cobalah sendiri "



Kalau tidak

Anda dapat menggunakan kata kunci else_ untuk menentukan blok kode yang akan dieksekusi jika tidak ada kesalahan yang muncul

Contoh

Dalam contoh ini, blok try tidak menghasilkan kesalahan apa pun

mencoba
cetak("Halo")
kecuali
print("Ada yang tidak beres")
kalau tidak
print("Tidak ada yang salah")

Cobalah sendiri "


Akhirnya

Blok finally_, jika ditentukan, akan dieksekusi terlepas dari apakah blok try menimbulkan kesalahan atau tidak

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 tepat. 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 dimunculkan

Ringkasan

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

Apa pengecualian dalam Python dengan contoh?

Pengecualian Bawaan Python

Mengapa menggunakan pengecualian dengan Python?

Berikut adalah alasan untuk menggunakan pengecualian di Python. Penanganan pengecualian memungkinkan Anda memisahkan kode penanganan kesalahan dari kode normal . Pengecualian adalah objek Python yang mewakili kesalahan. Seperti komentar kode, pengecualian membantu Anda mengingatkan diri sendiri tentang apa yang diharapkan oleh program.

Apakah pengecualian sama dengan kesalahan di Python?

Kesalahan mungkin menunjukkan masalah kritis yang seharusnya tidak ditangkap oleh aplikasi yang masuk akal, sementara Pengecualian mungkin menunjukkan kondisi yang harus coba ditangkap oleh aplikasi. Kesalahan adalah bentuk pengecualian yang tidak dicentang dan tidak dapat dipulihkan seperti OutOfMemoryError , yang tidak boleh ditangani oleh pemrogram.

Apa tujuan pengecualian?

Pengecualian menyediakan cara untuk memisahkan detail tentang apa yang harus dilakukan ketika sesuatu yang tidak biasa terjadi dari logika utama suatu program . Dalam pemrograman tradisional, deteksi, pelaporan, dan penanganan kesalahan sering menyebabkan kode spageti yang membingungkan.