Tafsirkan Traceback:
Melihat beberapa jejak dapat memberikan tafsiran yang lebih baik mengenai pengetahuan yang mereka berikan untuk membolehkan anda memperoleh sesuatu daripadanya. Mari kita lihat tafsiran bagaimana pengecualian asas dapat dikesan. Berikut adalah contoh kod mudah yang menghasilkan kesalahan penelusuran dalam pelaksanaan Spyder (Python 3).
Di bawah ini adalah gambar jejak kesalahan. Baris pertama menunjukkan lokasi fail. Berikut adalah beberapa spesifikasi untuk semua garis menggunakan warna.
Putih: Traceback (panggilan terakhir terakhir) adalah pernyataan traceback. Sebaliknya, bahagian putih baris terakhir menunjukkan maklumat kesalahan yang berkaitan.
Hijau: Kesalahan memberitahu nama fail dan lokasi.
Biru: Menunjukkan nombor baris fail di mana kesalahan berlaku.
Kuning: Ia memaparkan garis sebenar di mana pengecualian muncul.
Merah: Jenis Ralat.
Berikut adalah beberapa kesalahan penting dalam penelusuran semula:
Kesalahan Nama
Kesalahan Indeks
Kesalahan Utama
Taip Kesalahan
nilaiError
ImportError / ModuleNotFound
Ralat Nama:
Setiap kali anda mahu mentafsirkan pemboleh ubah yang belum dinyatakan dalam kod, NameError akan muncul. Berikut adalah contoh mudah bagi penelusuran semula NameError. Kami mempunyai pemboleh ubah 'nombor' ditakrifkan dengan beberapa nilai, semasa di mencetak penyataan, kami telah mencetak 'kebas', yang tidak ditentukan di mana-mana kod. Mari jalankan kod ini dan periksa apa yang berlaku.
Anda dapat melihat jejak NameError telah berlaku kerana kami belum menentukan pemboleh ubah 'numb', jadi bagaimana ia dapat dicetak. Itulah sebabnya mengapa program ini menunjukkan NameError dan menghuraikannya dengan maklumat tambahan pada baris terakhir dengan teks putih dan merah. Teks kuning menunjukkan kod yang tepat di mana ralat berlaku.
Ralat Indeks:
IndexError dihasilkan apabila siri yang berada di luar jangkauan ditentukan dalam kod. Kami telah menentukan a senarai dinamakan 'baru' mempunyai 5 indeks dengan beberapa nilai di dalamnya. Selepas itu, kita harus menyatakan perintah cetak untuk mengeluarkan nilai pada indeks nombor 9.
Apabila kita melaksanakan kod ini, ia akan menghasilkan IndexError yang menentukan indeks di luar jangkauan. Oleh kerana kami telah menentukan senarai 5 indeks, oleh itu nombor indeks bercetak, yang mana 9 tidak dapat diakses kerana tidak ada dalam julat kami.
Ralat Utama:
Python menghasilkan ralat utama semasa anda cuba mencapai kunci iaitu tidak ditakrifkan atau dipetakan, terutamanya dari a kamus. Ia lebih seperti IndexError. Oleh itu, mari kita lihat contoh ringkas kamus bernama 'rawak' dengan dua kunci yang ditentukan di dalamnya dengan beberapa nilai yang diberikan kepada kunci ini. Pada baris seterusnya, kami telah mencetak kunci bernama 'A' dalam pernyataan cetak.
Oh! Kami mendapat Traceback KeyError. Ini disebabkan oleh kunci yang salah yang disediakan dalam pernyataan cetak, yang tidak ditentukan dalam kamus. Seseorang boleh melakukan kesalahan dengan memberikan kunci huruf besar sementara kamus mempunyai kunci huruf kecil yang ditentukan di dalamnya.
Ralat Jenis:
TypeError didefinisikan sebagai pengecualian yang berlaku apabila beberapa operasi atau kaedah telah dilancarkan ke jenis yang tidak sesuai entiti atau pemboleh ubah. Kami mempunyai contoh pemboleh ubah sederhana yang mengambil dua nilai sementara rentetan ini menambahkan kedua-dua nilai. Nilai pertama adalah jenis rentetan, dan yang lain adalah jenis integer. Pernyataan cetak mencetak hasil penambahan.
Apabila kod ini dilakukan, ia menimbulkan pengecualian. Pengecualian ini adalah mengenai jenis objek yang salah yang digabungkan. Ini menjelaskan bahawa anda tidak boleh menambahkan pemboleh ubah jenis rentetan dengan pemboleh ubah jenis integer.
Ralat Nilai:
Kesalahan Nilai ditakrifkan sebagai pengecualian yang hanya berlaku apabila beberapa kaedah terbina dalam mengambil hujah jenis betul tetapi nilai yang salah di dalamnya. Mari kita lihat sedikit contoh. Kami menggunakan kaedah terbina dalam int () dengan beberapa nilai rentetan dalam pernyataan cetak.
Apabila anda menjalankan kod satu baris ini, ia akan menghasilkan ValueError kerana kita menggunakan fungsi jenis bilangan bulat sambil memberikannya nilai string yang akan dijalankan. Itulah sebabnya ia akan menunjukkan bahawa fungsi int () mempunyai nilai yang tidak sah di dalamnya.
Sebaliknya, jika anda memberikannya nilai pecahan, ia akan mengubahnya menjadi nilai integer.
Kod ini mengeluarkan 11 kerana hanya mengambil bahagian integer sementara bahagian perpuluhan diabaikan sepenuhnya.
Ralat Import / Modul Tidak Ditemui:
Kadang-kadang anda mesti mengimport beberapa pakej atau modul dalam kod python anda untuk menggunakan fungsi khas melaluinya. Anda akan menemui jejak ImportError apabila agak salah mengenai pernyataan Import dalam kod. Kesalahan penjejakan ini berlaku semasa anda berada tidak dapat ke cari modul khusus atau sesuatu dari dalam pakej. Di sini kita telah mengimport dua modul, 'pip' dan 'java', dalam kod kami.
Semasa melaksanakan kod ini akan memberikan jejak ModuleNotFoundError. Ini kerana modul yang diimport 'java' tidak disokong oleh python library. Sebaliknya, ia tidak memberikan pengecualian semasa mengimport modul 'pip' kerana ia adalah modul yang disokong oleh Python.
Kesimpulan:
Jejak Python memberikan pengetahuan yang sangat baik yang akan membantu anda mengetahui apa yang tidak betul dalam kod tersebut. Sama ada anda melakukan ini untuk pertama kalinya atau tidak memahami apa yang dilakukannya, penjanaan traceback sedikit menakutkan. Untuk menjadi pengaturcara Python yang lebih kuat, penting untuk mengetahui butiran apa yang diberikan oleh jejak Python.