


Apakah kaedah pengendalian pengecualian dalam tutorial asas Python?
Pengecualian
Dalam Python
, gunakan objek pengecualian (exception object)
untuk mewakili situasi luar biasa yang berlaku semasa pelaksanaan kod Apabila program pelaksana terputus, pengecualian akan dilemparkan.
Jika pengecualian tidak dikendalikan dengan betul, larian akan ditamatkan.
Anda boleh bayangkan jika anda sedang membangunkan produk dan pengecualian berlaku dan anda tidak melaporkan punca pengecualian, ia akan menjadi sangat tidak selesa dan sukar untuk menyelesaikan masalah yang tidak normal.
Untuk meningkatkan kestabilan dan fleksibiliti produk, Python
menjalankan pembangun untuk menangkap dan mengendalikan pelbagai pengecualian umum ralat modul dalaman seperti KeyError异常类
adalah lebih biasa, dan sudah tentu terdapat banyak yang lain.
Ralat dan pengecualian
Untuk memberi anda pemahaman ringkas, Python membahagikan ralat pelaksanaan kod kepada dua kategori: ralat sintaks (syntax error)
dan pengecualian (exception)
.
Kesilapan tatabahasa
Pertama sekali, terdapat masalah kesalahan tatabahasa. Ia dapat dilihat daripada perkataan bahawa ralat penghuraian kod adalah salah.
Ralat jenis ini biasanya berlaku di kalangan pemula Sebab utama ialah kod yang dilaksanakan tidak mematuhi spesifikasi sintaks Python, jadi ralat sintaks akan dilaporkan dan kod akan berhenti.
Contoh ralat diberikan di bawah:
>>> if for not in list(1,2,3,4) File "<stdin>", line 1 if for not in list(1,2,3,4) ^ SyntaxError: invalid syntax
Daripada laporan ralat di atas, kita boleh tahu bahawa ia adalah ralat sintaks dan sintaks tidak sah. Dan menunjukkan bahawa ralat berada dalam kedudukan for
Jelas sekali, if
dan for
tidak boleh digunakan bersama.
Pengecualian
Pengecualian ialah ralat yang ditemui semasa pelaksanaan kod Sukar untuk mencarinya terlebih dahulu Walaupun kod itu ditulis dengan cara yang sangat standard, pengecualian pelaksanaan mungkin berlaku .
Contoh ralat diberikan di bawah. Dalam operasi matematik, masalah yang sering dibincangkan ialah kes pembahagian dengan sifar. Walau bagaimanapun, 0 tidak dibenarkan sebagai pembahagi kerana ia akan menyebabkan pengecualian.
>>> a = 5 / 0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero
Jelas sekali mesej ralat menunjukkan bahawa 0 adalah tidak betul sebagai pembahagi.
Pengendalian Pengecualian
Selepas kami memahami ralat dan pengecualian, kami perlu mengendalikan pengecualian. Masalah seperti kesalahan tatabahasa boleh dielakkan dengan berlatih lebih banyak Untuk pengecualian kedua, python
menyediakan pernyataan try-except
untuk mengendalikannya.
Untuk penjelasan yang lebih jelas, mari kita ambil kes di atas di mana pembahagi adalah 0 sebagai contoh Kami menangkap dan mengendalikan pengecualian dengan menambah pernyataan try-except
:
def division(x, y): try: return x / y except ZeroDivisionError: print("0不能作为除数!!!")
Kemudian kami memanggilnya. terminal Fungsi cuba:
division(x=1, y=0)
Output:
0 tidak boleh digunakan sebagai pembahagi! ! !
Walaupun input kami salah dan secara teorinya harus melaporkan ralat, tiada ralat dilaporkan dan perenggan dikembalikan.
Yang berikut menerangkan cara penyataan try-except
berfungsi:
Kod dalam Try-except akan dilaksanakan seperti biasa
Jika tiada pengecualian berlaku, langkau blok kod except dan tamatkan try-except
Jika pengecualian masalah berlaku dalam baris kod tertentu dalam try-except, kod yang tinggal akan berhenti melaksanakan. Jika Jika pengecualian adalah konsisten dengan apa yang dinyatakan dalam except, blok kod dalam except dilaksanakan, dan pengendalian pengecualian akan berakhir. tidak sepadan dengan apa yang dinyatakan dalam kecuali, kemudian Lompat keluar dari pernyataan cuba, program terus membuang pengecualian dan menamatkan pelaksanaan kod
-
Sudah tentu, kod yang kita tulis mungkin mempunyai berbilang pengecualian, jadi kita boleh menulis semua pengecualian dalam Dalam blok pernyataan kecuali, pelaksanaan khusus adalah seperti berikut:
except (RuntimeError, TypeError, NameError):pass
Salin selepas log masuk Jika sebarang ungkapan pengecualian dalam senarai pengecualian ditangkap, ia akan memasuki pemprosesan
def passpass(x=1): try: return print(x+x) except (RuntimeError, TypeError, NameError): pass except TypeError: print('参数错误啦~') except NameError: print('名称错误啦~')
except
Saya akan mengemas kini di sini hari ini dan saya akan mengemas kini esok . Mari pergi lompat tali , Hei, gulung gulung setiap hari, gulung ayam Beijing lama ~ (2022.4.20)
Jenis pengecualian Python boleh diwarisi di sini jika dinyatakan selepas itu kecuali Pengecualian mewarisi daripada pengecualian sebelumnya, jadi pengecualian berikutnya juga akan ditangkap Contohnya:Aakan mengeluarkan:class A(Exception): pass class B(A): pass class C(B): pass for cls in [A, B, C]: try: raise cls() except C: print('C') except B: print('B') except A: print('A')Salin selepas log masuk
B
C<. . output adalah semua a:>A
AA
Jika semua pengecualian diekstrak satu demi satu, ini akan menjadi sangat menyusahkan, Pada masa ini , anda tidak boleh menetapkan jenis pengecualian dalam kecuali yang terakhir, supaya semua pengecualian yang masih belum ditangkap akan ditangkap:
class A(Exception): pass class B(A): pass class C(B): pass for cls in [A, B, C]: try: raise cls() except A: print('A') except B: print('B') except C: print('C')
Fungsi penting: else.
pernyataan lain ialah Ia digunakan untuk melaksanakan beberapa operasi tambahan. Contohnya, beberapa operasi fail dilakukan dalam blok kod cubaan boleh dikeluarkan dalam lain Format sintaks adalah seperti berikut:Sudah tentu, kami juga boleh mengendalikan pengecualian. seperti berikut:def passpass(x=1): try: return print(x/x) except TypeError: print('参数错误啦~') except NameError: print('名称错误啦~') except: print('报错啦~自己查')Salin selepas log masuk
try: pass except: pass else: pass
Lemparkan pengecualian secara bebas
Dalam beberapa situasi biasa, pembangun tidak membuat ralat pelaksanaan, tetapi mereka tidak mematuhi logik reka bentuk, oleh itu, pembangun perlu secara aktif membuang pengecualian. Dalam kes ini, kita perlu menggunakan pernyataan raise Throw exception:
def passpass(x=1): try: return print(x/x) except TypeError as error: print('参数错误啦~', error) except NameError: print('名称错误啦~') except: print('报错啦~自己查')
Pengecualian tersuai
Apabila pengecualian terbina dalam Python tidak dapat memenuhi keperluan pembangunan, anda boleh menyesuaikan pengecualian.
自定义异常类必须要直接或间接继承自Exception类。尽管自定义异常类与其他类具有相同的功能,但为保持简洁,应该仅提高必要的属性。
class Error(Exception): """Base class for exception in this module.""" pass class InputError(Error): """Exception raised for errors in the input. Attributes: expression -- input expression in which the error occurred message -- explanation of the winerror """ def __init__(self, expression, message): self.expression = expression self.message = message
finally子句
else在代码正常执行后才会被执行的代码块,但有些情况无论代码块是否出现异常都要执行,则需要用到finally语句:
def passpass(x=1): try: return print(x/x) except TypeError as error: print('参数错误啦~', error) except NameError: print('名称错误啦~') except: print('报错啦~自己查') finally: print('运算结束~')
Atas ialah kandungan terperinci Apakah kaedah pengendalian pengecualian dalam tutorial asas Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

Kod VS boleh digunakan untuk menulis Python dan menyediakan banyak ciri yang menjadikannya alat yang ideal untuk membangunkan aplikasi python. Ia membolehkan pengguna untuk: memasang sambungan python untuk mendapatkan fungsi seperti penyempurnaan kod, penonjolan sintaks, dan debugging. Gunakan debugger untuk mengesan kod langkah demi langkah, cari dan selesaikan kesilapan. Mengintegrasikan Git untuk Kawalan Versi. Gunakan alat pemformatan kod untuk mengekalkan konsistensi kod. Gunakan alat linting untuk melihat masalah yang berpotensi lebih awal.

Kod VS boleh dijalankan pada Windows 8, tetapi pengalaman mungkin tidak hebat. Mula -mula pastikan sistem telah dikemas kini ke patch terkini, kemudian muat turun pakej pemasangan kod VS yang sepadan dengan seni bina sistem dan pasangnya seperti yang diminta. Selepas pemasangan, sedar bahawa beberapa sambungan mungkin tidak sesuai dengan Windows 8 dan perlu mencari sambungan alternatif atau menggunakan sistem Windows yang lebih baru dalam mesin maya. Pasang sambungan yang diperlukan untuk memeriksa sama ada ia berfungsi dengan betul. Walaupun kod VS boleh dilaksanakan pada Windows 8, disyorkan untuk menaik taraf ke sistem Windows yang lebih baru untuk pengalaman dan keselamatan pembangunan yang lebih baik.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Sambungan kod VS menimbulkan risiko yang berniat jahat, seperti menyembunyikan kod jahat, mengeksploitasi kelemahan, dan melancap sebagai sambungan yang sah. Kaedah untuk mengenal pasti sambungan yang berniat jahat termasuk: memeriksa penerbit, membaca komen, memeriksa kod, dan memasang dengan berhati -hati. Langkah -langkah keselamatan juga termasuk: kesedaran keselamatan, tabiat yang baik, kemas kini tetap dan perisian antivirus.

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Dalam kod VS, anda boleh menjalankan program di terminal melalui langkah -langkah berikut: Sediakan kod dan buka terminal bersepadu untuk memastikan bahawa direktori kod selaras dengan direktori kerja terminal. Pilih arahan Run mengikut bahasa pengaturcaraan (seperti python python your_file_name.py) untuk memeriksa sama ada ia berjalan dengan jayanya dan menyelesaikan kesilapan. Gunakan debugger untuk meningkatkan kecekapan debug.
