Apa yang menyebabkan kesalahan ketik python?

Kesalahan yang terjadi saat runtime (setelah melewati tes sintaks) disebut pengecualian atau kesalahan logis

Misalnya, mereka terjadi ketika kita

  • coba buka file(untuk dibaca) yang tidak ada (FileNotFoundError)
  • cobalah untuk membagi angka dengan nol (ZeroDivisionError)
  • mencoba untuk mengimpor modul yang tidak ada (ImportError) dan seterusnya

Setiap kali kesalahan runtime jenis ini terjadi, Python membuat objek pengecualian

Jika tidak ditangani dengan benar, pelacakan kembali ke kesalahan tersebut akan dicetak bersama dengan beberapa detail tentang mengapa kesalahan tersebut terjadi

Mari kita lihat bagaimana Python menangani error ini

divide_numbers = 7 / 0
prit(divide_numbers)

Keluaran

Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
_

Di sini, saat mencoba membagi 7 / 0_, program melempar pengecualian sistem ZeroDivisionError


Pengecualian Bawaan Python

Operasi ilegal dapat menimbulkan pengecualian. Ada banyak pengecualian bawaan di Python yang dimunculkan saat terjadi kesalahan terkait

Kita dapat melihat semua pengecualian bawaan menggunakan fungsi local() bawaan sebagai berikut

print(dir(locals()['__builtins__']))

Di sini,

divide_numbers = 7 / 0
prit(divide_numbers)
0 akan mengembalikan modul pengecualian, fungsi, dan atribut bawaan dan
divide_numbers = 7 / 0
prit(divide_numbers)
1 memungkinkan kita untuk mencantumkan atribut ini sebagai string

Beberapa pengecualian bawaan umum dalam pemrograman Python bersama dengan kesalahan yang menyebabkannya tercantum di bawah ini

Pengecualian Penyebab Kesalahan

divide_numbers = 7 / 0
prit(divide_numbers)
_2Dibesarkan ketika pernyataan
divide_numbers = 7 / 0
prit(divide_numbers)
3 gagal.
divide_numbers = 7 / 0
prit(divide_numbers)
4Dibesarkan ketika penugasan atribut atau referensi gagal.
divide_numbers = 7 / 0
prit(divide_numbers)
5Diangkat ketika fungsi
divide_numbers = 7 / 0
prit(divide_numbers)
6 mencapai kondisi akhir file.
divide_numbers = 7 / 0
prit(divide_numbers)
7Dibesarkan ketika operasi floating point gagal.
divide_numbers = 7 / 0
prit(divide_numbers)
8Naikkan saat metode
divide_numbers = 7 / 0
prit(divide_numbers)
9 generator dipanggil. ImportErrorDibesarkan ketika modul yang diimpor tidak ditemukan.
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
1Dibesarkan saat indeks urutan berada di luar jangkauan.
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
2Diangkat ketika kunci tidak ditemukan dalam kamus.
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
3Dibesarkan saat pengguna menekan tombol interupsi (
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
4 atau
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
5).
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
6Dibesarkan saat operasi kehabisan memori.
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
7Dibesarkan ketika variabel tidak ditemukan dalam lingkup lokal atau global.
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
8Dibesarkan dengan metode abstrak.
Traceback (most recent call last):
 File "", line 1, in 
ZeroDivisionError: division by zero
_9Dibesarkan ketika operasi sistem menyebabkan kesalahan terkait sistem.
print(dir(locals()['__builtins__']))
0Dibesarkan ketika hasil operasi aritmatika terlalu besar untuk direpresentasikan.
print(dir(locals()['__builtins__']))
1Dibesarkan ketika proxy referensi yang lemah digunakan untuk mengakses referensi yang dikumpulkan sampah.
print(dir(locals()['__builtins__']))
2Dibesarkan ketika kesalahan tidak termasuk dalam kategori lain.
print(dir(locals()['__builtins__']))
3Diangkat oleh
print(dir(locals()['__builtins__']))
4 fungsi untuk menunjukkan bahwa tidak ada lagi item yang akan dikembalikan oleh iterator.
print(dir(locals()['__builtins__']))
5Dibesarkan oleh parser saat terjadi kesalahan sintaksis.
print(dir(locals()['__builtins__']))
6Dibesarkan jika ada lekukan yang salah.
print(dir(locals()['__builtins__']))
7Dibesarkan saat lekukan terdiri dari tab dan spasi yang tidak konsisten.
print(dir(locals()['__builtins__']))
8Dibesarkan saat juru bahasa mendeteksi kesalahan internal.
print(dir(locals()['__builtins__']))
9Dibesarkan oleh fungsi FileNotFoundError0. FileNotFoundError1Dibesarkan ketika fungsi atau operasi diterapkan ke objek dengan tipe yang salah. FileNotFoundError2Diangkat ketika referensi dibuat ke variabel lokal dalam fungsi atau metode, tetapi tidak ada nilai yang terikat ke variabel itu. FileNotFoundError3Dibesarkan saat terjadi kesalahan pengkodean atau penguraian kode terkait Unicode. FileNotFoundError4Dibesarkan saat kesalahan terkait Unicode terjadi selama penyandian. FileNotFoundError5Dibesarkan ketika kesalahan terkait Unicode terjadi selama decoding. FileNotFoundError6 Dibesarkan ketika kesalahan terkait Unicode terjadi selama terjemahan. FileNotFoundError7Diangkat ketika sebuah fungsi mendapatkan argumen dengan tipe yang benar tetapi nilai yang tidak tepat. ZeroDivisionErrorDiangkat ketika operan kedua dari operasi pembagian atau modulo adalah nol

Jika diperlukan, kami juga dapat menentukan pengecualian kami sendiri dengan Python. Untuk mempelajari lebih lanjut tentang mereka, kunjungi Pengecualian yang Ditentukan Pengguna Python

Kami dapat menangani pengecualian bawaan dan yang ditentukan pengguna ini di Python menggunakan pernyataan FileNotFoundError9, ZeroDivisionError0 dan ZeroDivisionError1. Untuk mempelajari lebih lanjut tentang mereka, kunjungi pernyataan Python try, exception dan finally


Kesalahan dan Pengecualian Python

Kesalahan mewakili kondisi seperti kesalahan kompilasi, kesalahan sintaks, kesalahan di bagian logis dari kode, ketidakcocokan pustaka, rekursi tak terbatas, dll.

Bagaimana cara mengatasi TypeError dengan Python?

Python mengembalikan kesalahan tipe karena string tidak dapat digabungkan ke daftar. Python mengharapkan daftar, sehingga mengembalikan kesalahan tipe. Jadi untuk menghindari hal ini, kita bisa mengecek tipe variabel sebelum menjalankan operasi

Apa yang menyebabkan kesalahan nilai di Python?

Apa yang Menyebabkan ValueError. ValueError Python dimunculkan ketika nilai yang salah diberikan ke suatu objek . Hal ini dapat terjadi jika nilainya tidak valid untuk operasi tertentu, atau jika nilainya tidak ada. Misalnya, jika bilangan bulat negatif diteruskan ke operasi akar kuadrat, ValueError dimunculkan.

Bagaimana cara memperbaiki kesalahan jenis?

Memperbaiki TypeError . Secara umum, untuk memperbaiki TypeError, pikirkan baik-baik tentang jenis nilai di baris yang disorot Python untuk Anda. Jenisnya tidak kompatibel. Jadi putuskan tipe mana yang benar-benar Anda inginkan, lalu gunakan gips. casting your value(s) to the correct type. In general, to fix a TypeError, think carefully about the types of the values in the line that Python highlighted for you. The types are not compatible. So decide which types you really want, then use casts.

Bagaimana Anda menggunakan kesalahan ketik di Python?

Pengecualian Kesalahan Jenis dimunculkan saat dua jenis operan atau objek yang berbeda atau tidak terkait digabungkan . Dalam contoh di bawah ini, bilangan bulat dan string ditambahkan, yang menghasilkan kesalahan ketik. mencoba. a = 5 b = "DataCamp" c = a + b kecuali TypeError. cetak ('Pengecualian TypeError Dibesarkan') lainnya. print('Sukses, tidak ada kesalahan.