„Python“ klaidos ir įmontuotos išimtys

Šioje pamokoje sužinosite apie įvairias klaidas ir išimtis, kurios yra įmontuotos „Python“. Jie iškeliami, kai „Python“ vertėjas susiduria su klaidomis.

Vaizdo įrašas: „Python“ išimčių tvarkymas

Rašydami programą galime padaryti tam tikrų klaidų, kurios sukelia klaidų, kai bandome ją paleisti. „Python“ programa nutraukiama, kai tik aptinka neapdorotą klaidą. Šias klaidas galima suskirstyti į dvi klases:

  1. Sintaksės klaidos
  2. Loginės klaidos (išimtys)

„Python“ sintaksės klaidos

Klaida, atsiradusi nesilaikant tinkamos kalbos struktūros (sintaksės), vadinama sintaksės klaida arba analizavimo klaida .

Pažvelkime į vieną pavyzdį:

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

Kaip parodyta pavyzdyje, rodyklė rodo, kur analizatorius pateko į sintaksės klaidą.

Čia galime pastebėti :, kad ifpareiškime trūksta dvitaškio .

„Python“ loginės klaidos (išimtys)

Klaidos, įvykusios vykdymo metu (išlaikius sintaksės testą), vadinamos išimtimis arba loginėmis klaidomis .

Pavyzdžiui, jie atsiranda, kai bandome atidaryti failą (skaityti), kurio nėra ( FileNotFoundError), bandome skaičių padalyti iš nulio ( ZeroDivisionError) arba bandome importuoti neegzistuojantį modulį ( ImportError).

Kai įvyksta tokio tipo vykdymo laiko klaidos, „Python“ sukuria išimties objektą. Jei elgiamasi netinkamai, tai atspausdina tos klaidos atsekamąjį ryšį ir išsamią informaciją, kodėl ta klaida įvyko.

Pažvelkime, kaip „Python“ traktuoja šias klaidas:

 >>> 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'

„Python“ integruotos išimtys

Neteisėtos operacijos gali sukelti išimčių. „Python“ yra daugybė integruotų išimčių, kurios iškyla įvykus atitinkamoms klaidoms. Mes galime peržiūrėti visas įmontuotas išimtis naudodami integruotą local()funkciją taip:

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

locals()('__builtins__')grąžins įmontuotų išimčių, funkcijų ir atributų modulį. dirleidžia mums išvardyti šiuos atributus kaip eilutes.

Kai kurios įprastos „Python“ programavimo integruotos išimtys kartu su klaidomis, kurios jas sukelia, yra išvardytos toliau:

Išimtis Klaidos priežastis
AssertionError Pakeltas, kai assertpareiškimas nepavyksta.
AttributeError Pakeliama, kai atributo priskyrimas ar nuoroda nepavyksta.
EOFError Pakeliama, kai input()funkcija pasiekia failo pabaigos sąlygą.
FloatingPointError Paaukštinta, kai slankiojo kablelio operacija nepavyksta.
GeneratorExit Pakelkite, kai close()bus vadinamas generatoriaus metodas.
ImportError Pakeliama, kai importuoto modulio nerandama.
IndexError Pakeliama, kai sekos indeksas yra už diapazono ribų.
KeyError Pakeliama, kai raktinio žodžio nerandama.
KeyboardInterrupt Pakeliama, kai vartotojas paspaudžia pertraukimo klavišą ( Ctrl+Carba Delete).
MemoryError Pakeltas, kai operacijai trūksta atminties.
NameError Pakeltas, kai kintamasis nerandamas vietiniu ar pasauliniu mastu.
NotImplementedError Iškelta abstrakčiais metodais.
OSError Pakeliama, kai sistemos veikimas sukelia su sistema susijusių klaidų.
OverflowError Pakeliama, kai aritmetinės operacijos rezultatas yra per didelis, kad būtų galima pateikti.
ReferenceError Pakeltas, kai norint pasiekti šiukšlių surinktą referentą naudojamas silpnas nuorodos tarpinis serveris.
RuntimeError Pakeliama, kai klaida nepriklauso jokiai kitai kategorijai.
StopIteration Pakelta pagal next()funkciją, kad būtų rodoma, jog daugiau elementų, kuriuos turi grąžinti iteratorius, nėra.
SyntaxError Iškėlė analizatorius, kai įvyksta sintaksės klaida.
IndentationError Pakeliama, kai yra neteisinga įtrauka.
TabError Pakeliama, kai įtrauka susideda iš nenuoseklių skirtukų ir tarpų.
SystemError Pakeliama, kai vertėjas aptinka vidinę klaidą.
SystemExit Pakelta pagal sys.exit()funkciją.
TypeError Pakeliama, kai netinkamo tipo objektui taikoma funkcija ar operacija.
UnboundLocalError Pakeliama, kai funkcijoje ar metode pateikiama nuoroda į vietinį kintamąjį, tačiau jokia reikšmė nebuvo susieta su šiuo kintamuoju.
UnicodeError Pakeliama, kai įvyksta su „Unicode“ susijusi kodavimo ar dekodavimo klaida.
UnicodeEncodeError Pakeltas, kai koduojant įvyksta su „Unicode“ susijusi klaida.
UnicodeDecodeError Pakeliama, kai dekoduojant įvyksta su „Unicode“ susijusi klaida.
UnicodeTranslateError Pakeltas, kai verčiant įvyksta su „Unicode“ susijusi klaida.
ValueError Pakelta, kai funkcija gauna teisingo tipo, bet netinkamos vertės argumentą.
ZeroDivisionError Pakeliama, kai antrasis dalybos arba modulo operacijos operandas yra lygus nuliui.

Jei reikia, „Python“ taip pat galime apibrėžti savo išimtis. Norėdami sužinoti daugiau apie juos, apsilankykite „Python“ vartotojo nustatytose išimtyse.

Mes galime valdyti šiuos Įmontuoti ir user-defined išimtis Python naudojant try, exceptir finallypareiškimus. Norėdami sužinoti daugiau apie juos, apsilankykite „Python“ bandymo, išskyrus ir galiausiai, teiginiuose.

Įdomios straipsniai...