


Ringkasan:
Ralat program tidak dapat dipulihkan; apabila program menghadapi ralat, ia akan keluar atau ranap serta-merta.
Pengaturcara yang baik memastikan bahawa kod atau perisian mereka boleh mengendalikan ralat/pengecualian yang mungkin timbul semasa penggunaan perisian tanpa ranap atau menghasilkan hasil yang tidak diingini. Bayangkan menulis perisian untuk institusi kewangan yang hanya menerima input angka, jika pengguna memasukkan huruf dan bukannya nombor untuk operasi aritmetik, ini biasanya akan menimbulkan ralat dan perisian akan ranap kerana pengguna tunggal, jika tiada sebarang mekanisme dalam tempat untuk mengendalikan kata-kata ralat. Ini sememangnya bukan perkara yang baik - ia tidak baik untuk perniagaan, boleh menyebabkan pelanggan kecewa, dan seseorang boleh kehilangan pekerjaan kerana ketidakcekapan.
Dalam artikel ini, kami akan mempelajari cara terbaik untuk menangani ralat dalam kod anda yang mungkin timbul akibat interaksi pengguna. nantikan.
Prasyarat
Artikel ini sesuai untuk:
- Pembangun perisian Python ingin mengetahui cara mengendalikan pengecualian dalam kod mereka.
- Orang yang sudah biasa dengan Python dan ingin mempelajari konsep pengendalian ralat dalam Python.
- Para profesional sedia ada yang ingin meningkatkan pengetahuan mereka tentang pengendalian ralat Python.
Matlamat
Selepas membaca artikel ini, pembaca seharusnya dapat:
- Memahami dengan jelas konsep pengendalian ralat dalam Python dan kepentingannya.
- Ketahui tentang kelas pengecualian tersuai dan cara melaksanakannya.
- Fahami perbezaan utama antara ralat dan pengecualian dalam Python.
Penjelasan tentang ralat dan pengecualian
Ralat dan Pengecualian sering digunakan secara bergantian, tetapi secara teknikal ia bermaksud perkara yang berbeza. Dalam Python, Ralat dan Pengecualian ialah kedua-dua subkelas BaseException, Ini selanjutnya menunjukkan bahawa walaupun mereka berbeza, mereka mempunyai persamaan.
Ralat
Ralat tidak dapat dipulihkan; apabila program kami menghadapi ralat, ia akan keluar atau ranap serta-merta. Walaupun anda mungkin menjangkakan ralat, tidak ada cara untuk mengendalikannya secara pemrograman. Beberapa ralat disenaraikan di bawah:
SyntaxError
:
Ini adalah salah satu jenis ralat yang paling biasa dihadapi oleh pengaturcara, ia berlaku apabila kod tidak mengikut sintaks Python yang betul dan boleh dikesan semasa menghuraikan. Ini adalah soalan yang mudah timbul untuk pelajar atau orang yang beralih kepada Python daripada bahasa pengaturcaraan lain.
name = “Austin”; print(name)
Ini menghasilkan SyntaxError
kerana dalam pernyataan Python tidak berakhir dengan koma bertitik.
IndentationError
:
Ralat ini berlaku apabila kod Python diinden dengan tidak betul dan dikesan semasa menghuraikan kod. Lekukan dalam Python sangat penting. Ia adalah satu-satunya cara dalam Python anda boleh menentukan blok kod, tidak seperti kebanyakan bahasa yang menggunakan pendakap kerinting.
name = “Austin”; print(name)
Kod ini akan menyebabkan ralat disebabkan lekukan yang tidak betul. Ia sepatutnya:
active = True if (active): print(“The user is active”)
Pengecualian
Pengecualian dalam Python berlaku pada masa jalan. Tidak seperti ralat, ia boleh dikendalikan dengan betul atau ditangkap secara pengaturcaraan supaya program kami boleh terus berjalan tanpa ranap. Dalam erti kata lain, ia boleh dipulihkan. Berikut ialah beberapa pengecualian biasa dalam Python:
Pengecualian terbina dalam
Jenis pengecualian ini adalah sebahagian daripada bahasa pengaturcaraan Python. Sebahagian daripada mereka disenaraikan di bawah:
ValueError
:
Ralat ini berlaku apabila parameter yang tidak sah dihantar ke fungsi, walaupun jenisnya mungkin betul.
if (active): print(“The user is active”)
Daripada coretan kod di atas, jika kita menghantar rentetan angka ke fungsi, ia akan berjaya menukar kepada nombor, jika tidak, ia akan menghasilkan ValueError
.
def str_num(num_string): return(int(string))
TypeError
:
Ralat ini timbul apabila parameter jenis yang tidak sesuai dihantar ke fungsi.
print(str_num(“123”)) #works perfectly print(str_num(“abc”)) #raises a ValueError
Ini akan mencetuskan TypeError
.
IndexError
:
Ralat ini berlaku apabila anda cuba mengakses nilai dalam senarai menggunakan indeks yang salah.
def addition(num1, num2): return num1 + num2 # calling the function addition(5, A)
Ini mengakibatkan IndexError
kerana my_list[2]
tidak boleh diakses.
KeyError
:
Ralat ini timbul apabila percubaan dibuat untuk mengakses nilai dalam kamus menggunakan kunci yang salah atau tidak wujud.
my_list = [“dog”, “cat”] my_list[2]
Ini akan mencetuskan KeyError
.
Anda boleh menemui pengecualian terbina dalam lain di sini.
Pengecualian tersuai
Pengecualian tersuai ditakrifkan oleh pengaturcara. Di sini, Python membolehkan pengaturcara mentakrifkan syarat secara manual yang perlu diperiksa oleh program semasa pelaksanaan dan membuang pengecualian jika ditemui. Anda boleh mencapai ini dengan mencipta kelas yang mewarisi daripada kelas Exception
.
Mengendalikan pengecualian
Pengecualian pengendalian memastikan aplikasi perisian kami mempunyai prestasi yang boleh diramal apabila menghadapi ralat tertentu yang timbul semasa kitaran hayat aplikasi. Dalam bahagian ini, anda akan belajar bagaimana untuk melaksanakan ini dalam pengaturcaraan.
Gunakan try-except
pernyataan
Pernyataan try-except
menyediakan cara selamat untuk mengendalikan kod yang mungkin menimbulkan ralat atau pengecualian. Penyataan try
membalut kod bermasalah atau klausa try
ini adalah bahagian kod yang kemungkinan besar akan menyebabkan keseluruhan program menjadi salah apabila menerima input daripada pengguna, membaca daripada fail, ke sebutkan beberapa contoh.
except
menandakan permulaan klausa except
ini ialah selebihnya kod yang dibalut dalam blok except
. Klausa except
mengendalikan pengecualian yang dibangkitkan dalam blok try
.
Izinkan saya membimbing anda melalui aliran kerja pelaksanaan. Program Python anda biasanya akan dilaksanakan sehingga ia mencapai blok try
yang mengandungi kod "bermasalah", dan jika tiada ralat yang mungkin berlaku semasa melaksanakan kod dalam blok try
pada masa itu, ia akan melangkau blok except
dan teruskan Laksanakan asas kod yang lain. Walau bagaimanapun, jika ralat ditemui semasa melaksanakan kod dalam blok try
, sejurus selepas objek pengecualian dicipta, kawalan melompat ke blok except
di mana ia harus dikendalikan oleh kelas pengecualian yang sepadan.
name = “Austin”; print(name)
Daripada coretan kod di atas, jika nilai bukan angka dihantar ke atur cara, objek pengecualian dibuat dan ValueError
dilemparkan. Kawalan segera melompat ke blok except
, di mana ia mengimbas kelas pengecualian yang sesuai. Di sini, kelas ValueError
sudah memadai. Ralat telah dikendalikan dengan betul. Walau bagaimanapun, jika kelas yang betul tidak ditemui, kawalan beralih ke blok try
luar (jika ada), dan jika pengecualian masih tidak dikendalikan dengan betul, program ranap.
Gunakan satu pernyataan except
untuk mengendalikan berbilang kelas pengecualian
Boleh menyemak berbilang kelas pengecualian dan mengendalikan pengecualian tertentu. Pendekatan ini lebih disukai jika anda tidak pasti yang mana antara beberapa pengecualian yang menghasilkan pelaksanaan kod. Lihat coretan kod di bawah.
active = True if (active): print(“The user is active”)
Kelas pengecualian kad liar
KelasException
ialah subkelas langsung BaseException
. Kelas Exception
ialah kelas asas untuk semua pengecualian bukan maut.
Dalam kebanyakan kes, kelas Exception
mencukupi untuk mengendalikan kebanyakan pengecualian yang dilemparkan semasa pelaksanaan kod.
if (active): print(“The user is active”)
Walaupun kelas Exception
boleh mengendalikan pengecualian yang tidak membawa maut, sebaiknya gunakannya dengan berhati-hati. Gunakan kelas Exception
yang betul kerana ia lebih baik untuk nyahpepijat dan meningkatkan kebolehbacaan kod.
Gunakan pernyataan finally
Bahagian kod yang dibalut dalam blok finally
akan dilaksanakan tanpa mengira sama ada pengecualian berlaku. Ini menjadikannya sesuai untuk mengendalikan tugas pembersihan;
def str_num(num_string): return(int(string))
Buat kelas pengecualian tersuai
Mencipta pengecualian tersuai membolehkan pengaturcara mengemukakan pengecualian khusus untuk program perisian. Ini mungkin termasuk keadaan khas atau kes tepi yang mungkin memudaratkan kefungsian program perisian tertentu. Kelas pengecualian tersuai yang ditakrifkan mesti diwarisi daripada kelas Exception
.
print(str_num(“123”)) #works perfectly print(str_num(“abc”)) #raises a ValueError
Coretan kod di atas menunjukkan cara membuat dan menggunakan pengecualian tersuai. Bergantung pada kes penggunaan, ia boleh digunakan dengan cara yang lebih kompleks.
Mengapa pengendalian ralat/pengecualian penting
"Jangan percaya pengguna" ialah pepatah biasa dalam kalangan pembangun perisian, yang mengulangi bahawa anda tidak pasti sepenuhnya bagaimana pengguna anda akan berinteraksi dengan aplikasi perisian anda tentang jenis input yang mereka masukkan dan perkara yang anda masukkan , pengaturcara, sedang lakukan semasa menulis aplikasi anda Terdapat beberapa kes sudut lain yang mungkin tidak difikirkan. Beberapa sebab penting untuk pengendalian ralat/pengecualian yang betul dijelaskan di bawah:
- Cegah ranap sistem Tanpa pengendalian pengecualian, ralat yang tidak dikendalikan boleh menyebabkan program ranap secara tiba-tiba. Ini boleh mengakibatkan kehilangan data atau pengalaman pengguna yang buruk. Contoh: Tiada pengecualian pengendalian:
Gunakan pengendalian pengecualian:
cuba: cetak(10/0) kecuali ZeroDivisionError: print("Tidak boleh bahagi dengan sifar!")
- Tingkatkan pengalaman pengguna Pengecualian yang dikendalikan dengan betul menjadikan aplikasi lebih mudah digunakan dengan menyediakan mesej ralat yang bermakna dan bukannya ralat sistem samar. Contoh:
- Kekalkan kestabilan aplikasi Ia membolehkan aplikasi terus berjalan walaupun selepas menghadapi ralat, memastikan kestabilan. Contoh:
cetak(bahagi(10, 2)) # Output: 5.0 print(bahagi(10, 0)) # Output: Pembahagian dengan sifar tidak dibenarkan!
- Mengendalikan situasi yang melampau Pengendalian pengecualian membolehkan anda mengambil kira situasi yang tidak dapat diramalkan seperti kegagalan rangkaian, kehilangan fail atau input pengguna yang tidak sah. Contoh:
Galakkan menulis kod ringkas
Pengendalian pengecualian menjadikan kod anda lebih mudah dibaca, nyahpepijat dan diselenggara dengan mengasingkan logik biasa daripada logik pengendalian ralat.Memudahkan penyahpepijatan
Dengan mesej ralat terperinci dan log pengecualian, pembangun boleh mengenal pasti dan membetulkan isu dalam kod mereka dengan cepat.
Contoh:
cuba: keputusan=10/0 kecuali Pengecualian sebagai e: logging.error("Ralat berlaku", exc_info=True)
- Kritis untuk sistem kritikal Dalam sistem yang kebolehpercayaan adalah kritikal (cth. perbankan, penjagaan kesihatan), pengendalian pengecualian adalah perlu untuk memastikan ralat diurus dengan selamat tanpa menyebabkan kerosakan atau kehilangan data.
Kesimpulan
Dalam istilah pengaturcaraan, ralat dan pengecualian paling kerap digunakan secara bergantian. Perbezaan utama antara ralat dan pengecualian dalam Python ialah cara ia mempengaruhi program perisian kami. Ralat seperti ralat sintaks dan ralat lekukan boleh ranap program apabila jurubahasa menghuraikannya. Sebaliknya, pengecualian boleh ranap program pada masa jalan jika ia tidak dikendalikan dengan betul. Pengecualian tersuai memanjangkan keupayaan pengendalian ralat dengan membolehkan pengaturcara mentakrifkan kelas pengecualian khusus untuk aplikasi perisian tertentu.
Pengendalian ralat juga sangat penting untuk nyahpepijat. Ia membolehkan kami melihat mengapa ralat berlaku dalam aplikasi, menyediakan penyelenggara perisian dengan maklumat yang mencukupi untuk menyelesaikan masalah. Sentiasa pastikan bahawa pengendalian pengecualian diperkenalkan dengan sewajarnya dalam kod anda untuk memastikan keteguhan aplikasi perisian anda.
Terima kasih kerana membaca.
Atas ialah kandungan terperinci Pengendalian Ralat dalam Python: Amalan Terbaik. Terokai cara mengendalikan pengecualian dengan berkesan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版
Alat pembangunan web visual

Dreamweaver CS6
Alat pembangunan web visual