Apa sajakah jenis pengecualian dalam python?

Python menyediakan dua fitur yang sangat penting untuk menangani kesalahan tak terduga dalam program Python Anda dan menambahkan kemampuan debugging di dalamnya −

  • Penanganan Pengecualian – Ini akan dibahas dalam tutorial ini. Berikut adalah daftar Pengecualian standar yang tersedia di Python. Pengecualian Standar

  • Assertions - Ini akan dibahas dalam tutorial Assertions in Python

Daftar Pengecualian Standar −

Sr. Tidak. Nama Pengecualian & Deskripsi1

Pengecualian

Kelas dasar untuk semua pengecualian

2

Hentikan Iterasi

Dibesarkan ketika metode next() dari sebuah iterator tidak menunjuk ke objek apapun

3

SystemExit

Dibesarkan oleh sys. keluar() fungsi

4

StandardError

Kelas dasar untuk semua pengecualian bawaan kecuali StopIteration dan SystemExit

5

Kesalahan Aritmatika

Kelas dasar untuk semua kesalahan yang terjadi untuk perhitungan numerik

6

OverflowError

Dimunculkan saat penghitungan melebihi batas maksimum untuk tipe numerik

7

FloatingPointError

Dibesarkan saat perhitungan floating point gagal

8

ZeroDivisionError

Dibesarkan saat pembagian atau modulo dengan nol terjadi untuk semua tipe numerik

9

AssertionError

Dibesarkan jika terjadi kegagalan pernyataan Asser

10

AttributeError

Dibesarkan jika terjadi kegagalan referensi atau penugasan atribut

11

EOFError

Dibesarkan ketika tidak ada input dari fungsi raw_input() atau input() dan akhir file tercapai

12

KesalahanImpor

Dibesarkan saat pernyataan impor gagal

13

KeyboardInterupsi

Dimunculkan saat pengguna menginterupsi eksekusi program, biasanya dengan menekan Ctrl+c

14

Kesalahan Pencarian

Kelas dasar untuk semua kesalahan pencarian

15

IndexError

Dibesarkan ketika indeks tidak ditemukan secara berurutan

16

KeyError

Dibesarkan ketika kunci yang ditentukan tidak ditemukan dalam kamus

17

NameError

Dibesarkan saat pengidentifikasi tidak ditemukan di namespace lokal atau global

18

UnboundLocalError

Dibesarkan saat mencoba mengakses variabel lokal dalam suatu fungsi atau metode tetapi tidak ada nilai yang ditetapkan untuknya

19

Kesalahan Lingkungan

Kelas dasar untuk semua pengecualian yang terjadi di luar lingkungan Python

20

IOError

Dimunculkan saat operasi input/output gagal, seperti pernyataan cetak atau fungsi open() saat mencoba membuka file yang tidak ada

21

IOError

Dibesarkan untuk kesalahan terkait sistem operasi

22

Kesalahan sintaks

Dibesarkan ketika ada kesalahan dalam sintaks Python

23

IndentationError

Dibesarkan saat lekukan tidak ditentukan dengan benar

24

Sistem bermasalah

Dibesarkan ketika interpreter menemukan masalah internal, tetapi ketika error ini ditemukan, interpreter Python tidak keluar

25

SystemExit

Dibesarkan ketika juru bahasa Python berhenti dengan menggunakan sys. keluar() fungsi. Jika tidak ditangani dalam kode, menyebabkan juru bahasa keluar

26

TypeError

Dibesarkan saat operasi atau fungsi dicoba yang tidak valid untuk tipe data yang ditentukan

27

ValueError

Dibesarkan ketika fungsi bawaan untuk tipe data memiliki tipe argumen yang valid, tetapi argumen tersebut memiliki nilai yang tidak valid yang ditentukan

28

RuntimeError

Dibesarkan ketika kesalahan yang dihasilkan tidak termasuk dalam kategori apa pun

29

NotImplementedError

Dibesarkan ketika metode abstrak yang perlu diterapkan di kelas yang diwariskan sebenarnya tidak diterapkan

Pernyataan dengan Python

Penegasan adalah pemeriksaan kewarasan yang dapat Anda aktifkan atau nonaktifkan saat Anda selesai dengan pengujian program

Cara termudah untuk memikirkan pernyataan adalah menyamakannya dengan pernyataan kenaikan-jika (atau lebih akurat, pernyataan kenaikan-jika-tidak). Ekspresi diuji, dan jika hasilnya salah, pengecualian akan dimunculkan

Penegasan dilakukan oleh pernyataan penegasan, kata kunci terbaru untuk Python, diperkenalkan di versi 1. 5

Pemrogram sering menempatkan pernyataan di awal fungsi untuk memeriksa input yang valid, dan setelah pemanggilan fungsi untuk memeriksa output yang valid

Pernyataan tegas

Saat menemukan pernyataan penegasan, Python mengevaluasi ekspresi yang menyertainya, yang diharapkan benar. Jika ekspresi salah, Python memunculkan pengecualian AssertionError

Sintaks untuk menegaskan adalah -

assert Expression[, Arguments]

Jika pernyataan gagal, Python menggunakan ArgumentExpression sebagai argumen untuk AssertionError. Pengecualian AssertionError dapat ditangkap dan ditangani seperti pengecualian lainnya menggunakan pernyataan try-exception, tetapi jika tidak ditangani, mereka akan menghentikan program dan menghasilkan traceback

Contoh

Berikut adalah fungsi yang mengubah suhu dari derajat Kelvin menjadi derajat Fahrenheit. Karena nol derajat Kelvin sedingin itu, fungsi ditebus jika melihat suhu negatif −

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut -

32.0
451
Traceback (most recent call last):
File "test.py", line 9, in 
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!

Apa itu Pengecualian?

Pengecualian adalah peristiwa yang terjadi selama eksekusi program yang mengganggu aliran normal dari instruksi program. Secara umum, ketika skrip Python menghadapi situasi yang tidak dapat diatasi, itu memunculkan pengecualian. Pengecualian adalah objek Python yang mewakili kesalahan

Ketika skrip Python memunculkan pengecualian, itu harus segera menangani pengecualian jika tidak maka akan berhenti dan berhenti

Menangani pengecualian

Jika Anda memiliki beberapa kode mencurigakan yang mungkin menimbulkan pengecualian, Anda dapat mempertahankan program Anda dengan mencoba kode mencurigakan tersebut. memblokir. Setelah mencoba. blokir, sertakan pengecualian. pernyataan, diikuti dengan blok kode yang menangani masalah seanggun mungkin

Sintaksis

Berikut adalah sintaks sederhana try. kecuali. lain blok -

try:
   You do your operations here;
   ......................
except ExceptionI:
   If there is ExceptionI, then execute this block.
except ExceptionII:
   If there is ExceptionII, then execute this block.
   ......................
else:
   If there is no exception then execute this block. 

Berikut adalah beberapa poin penting tentang sintaks yang disebutkan di atas -

  • Pernyataan try tunggal dapat memiliki beberapa pernyataan kecuali. Ini berguna ketika blok try berisi pernyataan yang mungkin mengeluarkan berbagai jenis pengecualian

  • Anda juga dapat memberikan klausa kecuali umum, yang menangani pengecualian apa pun

  • Setelah klausa kecuali, Anda dapat menyertakan klausa lain. Kode di blok else dieksekusi jika kode di try. blok tidak memunculkan pengecualian

  • Blok else adalah tempat yang bagus untuk kode yang tidak perlu dicoba. perlindungan blok

Contoh

Contoh ini membuka file, menulis konten di file, dan keluar dengan anggun karena tidak ada masalah sama sekali −

#!/usr/bin/python

try:
   fh = open("testfile", "w")
   fh.write("This is my test file for exception handling!!")
except IOError:
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"
   fh.close()
_

Ini menghasilkan hasil berikut -

Written content in the file successfully

Contoh

Contoh ini mencoba membuka file di mana Anda tidak memiliki izin menulis, sehingga menimbulkan pengecualian -

#!/usr/bin/python

try:
   fh = open("testfile", "r")
   fh.write("This is my test file for exception handling!!")
except IOError:
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"
_

Ini menghasilkan hasil berikut -

Error: can't find file or read data

Klausul kecuali dengan Tanpa Pengecualian

Anda juga dapat menggunakan pernyataan exception tanpa pengecualian yang didefinisikan sebagai berikut −

try:
   You do your operations here;
   ......................
except:
   If there is any exception, then execute this block.
   ......................
else:
   If there is no exception then execute this block. 
_

Pernyataan coba-kecuali semacam ini menangkap semua pengecualian yang terjadi. Menggunakan pernyataan coba-kecuali semacam ini tidak dianggap sebagai praktik pemrograman yang baik, karena ia menangkap semua pengecualian tetapi tidak membuat pemrogram mengidentifikasi akar penyebab masalah yang mungkin terjadi.

Klausa kecuali dengan Beberapa Pengecualian

Anda juga dapat menggunakan pernyataan exception yang sama untuk menangani banyak exception sebagai berikut −

try:
   You do your operations here;
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   If there is any exception from the given exception list, 
   then execute this block.
   ......................
else:
   If there is no exception then execute this block. 
_

Klausul coba-akhirnya

Anda dapat menggunakan akhirnya. memblokir bersama dengan mencoba. memblokir. Blok terakhir adalah tempat untuk meletakkan kode apa saja yang harus dieksekusi, baik blok coba memunculkan pengecualian atau tidak. Sintaks dari pernyataan try-finally adalah − ini

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_0

Anda tidak dapat menggunakan klausa lain juga bersama dengan klausa akhirnya

Contoh

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_1

Jika Anda tidak memiliki izin untuk membuka file dalam mode penulisan, maka ini akan menghasilkan hasil sebagai berikut –

Error: can't find file or read data

Contoh yang sama dapat ditulis lebih bersih sebagai berikut −

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_3

Ketika pengecualian dilemparkan ke blok try, eksekusi segera diteruskan ke blok finally. Setelah semua pernyataan di blok akhirnya dieksekusi, pengecualian dimunculkan lagi dan ditangani dalam pernyataan kecuali jika ada di lapisan berikutnya yang lebih tinggi dari pernyataan coba-kecuali

Argumen Pengecualian

Pengecualian dapat memiliki argumen, yang merupakan nilai yang memberikan informasi tambahan tentang masalah tersebut. Isi argumen bervariasi berdasarkan pengecualian. Anda menangkap argumen pengecualian dengan menyediakan variabel dalam klausa kecuali sebagai berikut -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_4

Jika Anda menulis kode untuk menangani satu pengecualian, Anda dapat membuat variabel mengikuti nama pengecualian dalam pernyataan kecuali. Jika Anda menjebak beberapa pengecualian, Anda dapat membuat variabel mengikuti tupel pengecualian

Variabel ini menerima nilai pengecualian yang sebagian besar mengandung penyebab pengecualian. Variabel dapat menerima satu nilai atau beberapa nilai dalam bentuk tupel. Tuple ini biasanya berisi string error, nomor error, dan lokasi error

Contoh

Berikut adalah contoh untuk satu pengecualian −

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_5

Ini menghasilkan hasil berikut -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_6

Meningkatkan Pengecualian

Anda dapat meningkatkan pengecualian dengan beberapa cara menggunakan pernyataan kenaikan. Sintaks umum untuk pernyataan kenaikan adalah sebagai berikut

Sintaksis

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_7

Di sini, Pengecualian adalah tipe pengecualian (misalnya, NameError) dan argumen adalah nilai untuk argumen pengecualian. Argumennya opsional;

Argumen terakhir, traceback, juga opsional (dan jarang digunakan dalam praktik), dan jika ada, adalah objek traceback yang digunakan untuk pengecualian

Contoh

Pengecualian dapat berupa string, kelas, atau objek. Sebagian besar pengecualian yang dimunculkan oleh inti Python adalah kelas, dengan argumen yang merupakan turunan dari kelas. Mendefinisikan pengecualian baru cukup mudah dan dapat dilakukan sebagai berikut −

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_8

Catatan. Untuk menangkap pengecualian, klausa "kecuali" harus mengacu pada pengecualian yang sama yang dilemparkan baik objek kelas atau string sederhana. Misalnya, untuk menangkap pengecualian di atas, kita harus menulis klausa kecuali sebagai berikut -

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)
_9

Pengecualian Buatan Pengguna

Python juga memungkinkan Anda membuat pengecualian sendiri dengan menurunkan kelas dari pengecualian bawaan standar

Berikut adalah contoh yang terkait dengan RuntimeError. Di sini, kelas dibuat yang merupakan subkelas dari RuntimeError. Ini berguna saat Anda perlu menampilkan informasi yang lebih spesifik saat pengecualian tertangkap

Di blok coba, pengecualian yang ditentukan pengguna dimunculkan dan ditangkap di blok kecuali. Variabel e digunakan untuk membuat turunan dari kelas Networkerror

Apa saja 3 jenis pengecualian utama di Python?

Terutama ada tiga jenis kesalahan yang dapat dibedakan dalam Python. kesalahan sintaks, pengecualian, dan kesalahan logis .

Apa saja 3 jenis pengecualian?

Ada tiga jenis pengecualian— pengecualian yang diperiksa, kesalahan, dan pengecualian runtime .

Apa saja jenis pengecualian *?

Pengecualian diperiksa .
lempar kata kunci. Ditampilkan dengan jelas dalam output bahwa program melempar pengecualian selama proses kompilasi. .
blok coba-tangkap. .
SQLException. .
IOException. .
ClassNotFoundException. .
PermintaanTargetException. .
NullPointerException. .
ArrayIndexOutofBound

Apa sajakah cara berbeda untuk menangani pengecualian di Python?

Pertama, klausa coba (pernyataan antara kata kunci coba dan kecuali) dijalankan
Jika tidak ada pengecualian yang terjadi, klausa pengecualian dilewati dan eksekusi pernyataan try selesai
Jika pengecualian terjadi selama eksekusi klausa try, klausa lainnya akan dilewati