Kesalahan Python dan Pengecualian Terbina dalam

Dalam tutorial ini, anda akan belajar mengenai pelbagai jenis ralat dan pengecualian yang terdapat di dalam Python. Mereka dibangkitkan setiap kali jurubahasa Python menghadapi kesilapan.

Video: Pengendalian Pengecualian Python

Kita boleh melakukan kesilapan tertentu semasa menulis program yang membawa kepada kesilapan ketika kita berusaha menjalankannya. Program python dihentikan sebaik sahaja menghadapi ralat yang tidak dapat ditangani. Kesalahan ini dapat dikelaskan secara meluas menjadi dua kelas:

  1. Kesalahan sintaks
  2. Kesalahan logik (Pengecualian)

Kesalahan Sintaks Python

Kesalahan yang disebabkan oleh tidak mengikuti struktur (sintaks) bahasa yang betul disebut kesalahan sintaks atau kesalahan parsing .

Mari lihat satu contoh:

 >>> if a < 3 File "", line 1 if a < 3 SyntaxError: invalid syntax

Seperti yang ditunjukkan dalam contoh, anak panah menunjukkan di mana pengurai mengalami kesalahan sintaks.

Kita dapat perhatikan di sini bahawa titik dua :hilang dalam ifpenyataan tersebut.

Kesalahan Logik Python (Pengecualian)

Kesalahan yang berlaku pada waktu runtime (setelah lulus ujian sintaks) disebut pengecualian atau kesalahan logik .

Sebagai contoh, ia berlaku ketika kita cuba membuka fail (untuk membaca) yang tidak ada ( FileNotFoundError), cuba membahagi nombor dengan sifar ( ZeroDivisionError), atau cuba mengimport modul yang tidak ada ( ImportError).

Setiap kali jenis kesalahan runtime ini berlaku, Python membuat objek pengecualian. Sekiranya tidak ditangani dengan betul, ia mencetak jejak kesalahan itu bersama dengan beberapa perincian mengenai mengapa kesalahan itu berlaku.

Mari lihat bagaimana Python menangani kesilapan ini:

 >>> 1 / 0 Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ZeroDivisionError: division by zero >>> open("imaginary.txt") Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in FileNotFoundError: (Errno 2) No such file or directory: 'imaginary.txt'

Pengecualian Built-in Python

Operasi haram boleh menimbulkan pengecualian. Terdapat banyak pengecualian bawaan di Python yang ditimbulkan apabila berlaku kesilapan. Kita dapat melihat semua pengecualian terbina dalam menggunakan fungsi terbina dalam local()seperti berikut:

 print(dir(locals()('__builtins__')))

locals()('__builtins__')akan mengembalikan modul pengecualian, fungsi, dan atribut terbina dalam. dirmembolehkan kita menyenaraikan atribut ini sebagai rentetan.

Beberapa pengecualian biasa dalam pengaturcaraan Python bersama dengan kesalahan yang menyebabkannya disenaraikan di bawah:

Pengecualian Sebab Ralat
AssertionError Dibangkitkan apabila assertpernyataan gagal.
AttributeError Dibangkitkan apabila penugasan atribut atau rujukan gagal.
EOFError Dibangkitkan apabila input()fungsi mencapai keadaan akhir fail.
FloatingPointError Dibangkitkan apabila operasi titik terapung gagal.
GeneratorExit Naik apabila kaedah penjana close()dipanggil.
ImportError Dibangkitkan apabila modul yang diimport tidak dijumpai.
IndexError Dibangkitkan apabila indeks urutan berada di luar jangkauan.
KeyError Dibangkitkan apabila kunci tidak dijumpai dalam kamus.
KeyboardInterrupt Dibangkitkan semasa pengguna menekan tombol interrupt ( Ctrl+Catau Delete).
MemoryError Dibangkitkan ketika operasi kehabisan ingatan.
NameError Dibangkitkan apabila pemboleh ubah tidak dijumpai dalam skop tempatan atau global.
NotImplementedError Dibesarkan dengan kaedah abstrak.
OSError Dibangkitkan semasa operasi sistem menyebabkan kesalahan berkaitan sistem.
OverflowError Dibangkitkan apabila hasil operasi aritmetik terlalu besar untuk diwakili.
ReferenceError Dibangkitkan apabila proksi rujukan lemah digunakan untuk mengakses rujukan sampah yang dikumpulkan.
RuntimeError Dibangkitkan apabila ralat tidak termasuk dalam kategori lain.
StopIteration Dibangkitkan oleh next()fungsi untuk menunjukkan bahawa tidak ada item lagi yang akan dikembalikan oleh iterator.
SyntaxError Dibangkitkan oleh penghurai ketika ralat sintaks dihadapi.
IndentationError Dibangkitkan apabila terdapat lekukan yang tidak betul.
TabError Dibangkitkan apabila lekukan terdiri daripada tab dan ruang yang tidak konsisten.
SystemError Dibangkitkan semasa jurubahasa mengesan kesalahan dalaman.
SystemExit Dibangkitkan oleh sys.exit()fungsi.
TypeError Dibangkitkan ketika fungsi atau operasi diterapkan pada objek jenis yang salah.
UnboundLocalError Dibangkitkan ketika rujukan dibuat ke variabel lokal dalam fungsi atau metode, tetapi tidak ada nilai yang terikat dengan pemboleh ubah tersebut.
UnicodeError Dibangkitkan apabila berlaku kesalahan pengekodan atau penyahkodan berkaitan Unicode.
UnicodeEncodeError Dibangkitkan apabila ralat berkaitan Unicode berlaku semasa pengekodan.
UnicodeDecodeError Dibangkitkan apabila ralat berkaitan Unicode berlaku semasa penyahkodan.
UnicodeTranslateError Dibangkitkan apabila ralat berkaitan Unicode berlaku semasa menterjemahkan.
ValueError Dibangkitkan apabila fungsi mendapat argumen jenis yang betul tetapi tidak wajar.
ZeroDivisionError Dibangkitkan apabila operasi operasi pembahagian atau modulo kedua adalah sifar.

Sekiranya diperlukan, kita juga dapat menentukan pengecualian kita sendiri di Python. Untuk mengetahui lebih lanjut mengenai mereka, lawati Pengecualian yang ditentukan oleh Pengguna Python.

Kami dapat menangani pengecualian terbina dalam dan pengguna ini di Python menggunakan try, exceptdan finallypernyataan. Untuk mengetahui lebih lanjut mengenai mereka, lawati Python cuba, kecuali dan akhirnya pernyataan.

Artikel menarik...