„Python“

„Python“ išimtis

„Python“ išimtis

Išimtis yra įvykis, atsirandantis vykdant programą, siekiant nutraukti ar pakeisti įprastą programos eigą. Pavyzdžiui, klaida kelia išimtį. Kaip ir kitose programavimo kalbose, „Python“ yra daug integruotų išimčių. Šios išimtys iškyla, jei vykdant programą įvyksta klaida. Klaidos tipas nustato, kurią išimtį reikia iškelti. Kai atsiranda išimtis, „Python“ vertėjas patikrina, ar išimtis tvarkoma; jei ne, tai nutraukia programą. Šiame straipsnyje įvairiais pavyzdžiais paaiškinamos „Python“ išimtys.

Įtaisytos „Python“ išimtys

Kaip jau buvo aptarta anksčiau, „Python“ turi daug įtaisytų išimčių, kurios iškyla įvykus klaidai vykdant programą. Kiekviena išimtis gaunama iš „Išimties“ pagrindinės klasės. Toliau pateikiamos kelios įmontuotos „Python“ išimtys ir trumpas kiekvieno išimties tipo aprašymas:

Išimtis apibūdinimas
Išimtis Kiekviena išimtis yra kilusi iš šios klasės.
ImportError Ši išimtis iškyla, kai importuojamas konkretus modulis, ir ji nerandama.
EOF klaida Tai yra bylos pabaigos išimtis. Ši išimtis įvyksta pasiekus failo pabaigą.
„ZeroDivisionError“ Ši išimtis keliama, kai skaičius padalinamas iš nulio.
„KeyError“ Ši išimtis keliama, jei nurodomas arba naudojamas tam tikras raktas, kuris nėra apibrėžtas žodyne.
„IndexError“ Ši išimtis keliama, kai bandoma patekti į sekos indeksą, kuris nėra diapazone.
„FloatingPointError“ Ši išimtis iškeliama, kai slankiojo kablelio operacija nepavyksta.

Tai yra keletas „Python“ integruotų išimčių. Norėdami gauti daugiau informacijos apie integruotų išimčių naudojimą „Python“, esančiame https: // docs, apsilankykite oficialiuose dokumentuose.pitonas.org / 3 / biblioteka / išimtys.HTML.

Išimties naudojimas „Python“

„Python“ išimtys tvarkomos naudojant „try“ sakinį. Kodo dalis, galinti išmesti ar sukelti išimtį, įgyvendinama bandymo bloke. Šalia bandymo bloko yra įgyvendinamas išimties tvarkymo blokas. Išskyrus bloką, pagauname išimtį ir nusprendžiame, kokią operaciją atlikti, kai susidursime su ta konkrečia išimtimi. Bandymo ir išskyrus blokus rašymo sintaksė yra tokia:

bandyti:
atlikti operaciją ar funkciją
išskyrus:
funkciją, kad būtų galima tvarkyti išimtį

Dabar mes įdiegsime paprastą kodą savo „Python“ scenarijuje naudodami bandymo ir išskyrus blokus.

Čia atspausdinsime neapibrėžtą „name“ kintamąjį. Tai sukelia išimtį, išskyrus bloką.

#įgyvendinti bandymo bloką
bandyti:
spausdinti (vardas)
#įgyvendinant išimtinį bloką
išskyrus:
spausdinti („Įvyko išimtis“)

Rezultatas

Jei nėra išimties, vykdomas tik bandomasis blokas. Išskyrus bloką, atspausdinamas pareiškimas, kad įvyko išimtis.

Pažvelkime į kitą pavyzdį, kuriame apibrėžiame vardo kintamąjį:

#defining name kintamasis
vardas = "Pažymėti"
#įgyvendinti bandymo bloką
bandyti:
spausdinti (vardas)
#įgyvendinant išimtinį bloką
išskyrus:
spausdinti („Įvyko išimtis“)

Rezultatas

Ankstesniame pavyzdyje bandomasis blokas yra vykdomas ir blokas išskyrus praleidžiamas, nes programa nekelia jokių išimčių. Savo programoje galime apibrėžti tiek, kiek norime blokų. Kiekvienas, išskyrus bloką, tvarko tam tikros rūšies išimtis.

#įgyvendinti bandymo bloką
bandyti:
spausdinti (vardas)
#implementing blokas išskyrus sugauti pavadinimo klaidą
išskyrus „NameError“:
spausdinti ("Kintamasis nėra apibrėžtas")
#įgyvendinant išimtinį bloką
išskyrus:
spausdinti („Kažkas nepavyko, išskyrus vardo klaidą“)

Rezultatas

„Python“ versijoje „Exception“ yra pagrindinė visų išimčių klasė. Užuot įrašę tam tikros išimties pavadinimą bloke, galime tiesiog parašyti „Išimtis“ ir tokiu būdu sugauti visų rūšių išimtis.

#įgyvendinti bandymo bloką
bandyti:
spausdinti (vardas)
#įgyvendinant bloką, išskyrus klaidą
išskyrus išimtį kaip exp:
spausdinti (gal.__klasė__)
#įgyvendinant išimtinį bloką
išskyrus:
spausdinti („Kažkas nepavyko, išskyrus vardo klaidą“)

Rezultatas

Ekspozicija.__class__ grąžina išimties klasės pavadinimą.

Panašiai pažvelkime į „ZeroDivisionError“ klasės pavyzdį.

#įgyvendinti bandymo bloką
bandyti:
x = 1/0
spausdinti (x)
#įgyvendinant bloką, išskyrus klaidą
išskyrus išimtį kaip exp:
spausdinti (gal.__klasė__)
#įgyvendinant išimtinį bloką
išskyrus:
spausdinti („Kažkas nepavyko, išskyrus vardo klaidą“)

Rezultatas

Kitas Blokas

Kitas blokas naudojamas su bandymo ir išimties blokais. Kitas blokas apibrėžia kodo dalį, kuri vykdoma, jei bandomasis blokas vykdomas sėkmingai ir neįvyksta klaida. Kartais gali reikėti atsispausdinti pranešimą arba atlikti funkciją, kai bandymo blokas bus sėkmingai įvykdytas. Dėl šios priežasties mes galime įgyvendinti kitą bloką bandydami ir išskyrus blokus.

Šiame pavyzdyje mes įdiegsime kitą bloką savo „Python“ scenarijuje.

#įgyvendinti bandymo bloką
bandyti:
x = 1/2
spausdinti (x)
#įgyvendinant bloką, išskyrus klaidą
išskyrus išimtį kaip exp:
spausdinti (gal.__klasė__)
#įgyvendinti kitą bloką
Kitas:
spausdinti („Viskas pavyko gerai“)

Rezultatas

Kitas blokas vykdomas sėkmingai įvykdžius bandymo bloką.

Pažvelkime į kitą pavyzdį, naudodami kitą bloką.

#įgyvendinti bandymo bloką
bandyti:
vardas = "Pažymėti"
#įgyvendinant bloką, išskyrus klaidą
išskyrus išimtį kaip exp:
spausdinti (gal.__klasė__)
#įgyvendinti kitą bloką
Kitas:
spausdinti ("Vardas yra:", vardas)

Rezultatas

Ankstesniame pavyzdyje vardo kintamasis yra apibrėžtas bandymo bloko viduje ir spausdinamas kitame bloke.

Pagaliau Blokuoti

The pagaliau bloke yra kodo dalis, kuri turi būti vykdoma neatsižvelgiant į tai, ar bandymo blokas sukelia išimtį. Galutinis blokas yra neprivalomas ir deklaruojamas kartu su bandymo bloku. Pvz., Jei atidarėme tekstinį failą, kad galėtume perskaityti bandymo bloką ir jis sukelia klaidą ar išimtį, geriau failą įtraukti į galutinį bloką, net jei įvyksta klaida. Įgyvendinkime paskutinį „Python“ scenarijaus bloką.

#įgyvendinti bandymo bloką
bandyti:
spausdinti (my_dict)
#įgyvendinant bloką, išskyrus klaidą
išskyrus išimtį kaip exp:
spausdinti (gal.__klasė__)
#įgyvendinti galutinį bloką
pagaliau:
spausdinti ("Tai yra galutinis blokas")
spausdinti ("Vykdomas galutinis blokas")

Rezultatas

Išvestyje matyti, kad bandymo blokas kelia išimtį. Tačiau galutinis blokavimas įvykdomas pabaigoje.

Dabar atidarykime teksto failą bandymo bloke, kuris kelia išimtį, o failas, uždarytas pagaliau.

#įgyvendinti bandymo bloką
bandyti:
fileObj = open ("mano studentas.xml "," r ")
fileObj.ieškoti (-2)
spausdinti (fileObj.eilutės ())
#įgyvendinant išimtinį bloką
išskyrus išimtį kaip exp:
spausdinti (gal.__klasė__)
#įgyvendinti galutinį bloką
pagaliau:
fileObj.Uždaryti()
spausdinti („Failas sėkmingai uždarytas“)

Rezultatas

Kaip matote, nepaisant vertės klaidos, failas buvo sėkmingai uždarytas galutinio bloko viduje.

Iškelkite išimtį

Nors įvykus klaidai išimtys keliamos automatiškai, „Python“ galite išimtis kelti ir rankiniu būdu. The pakelti raktinis žodis naudojamas išimčiai iškelti arba išmesti.

Dabar padidinsime kai kurias išimtis naudodami pakėlimo raktinį žodį. Šiame pavyzdyje, jei sąlyga yra įgyvendinta, norint patikrinti, ar nėra neigiamų skaičių. Jei yra kokių nors neigiamų skaičių, iškeliama išimtis „Neigiami skaičiai neleidžiami“.

#deklaruoti du skaičių kintamuosius
num1 = 20
num2 = -10
jei ((num1<0) | (num2<0)):
pakelti išimtį („Neigiami skaičiai neleidžiami“)
Kitas:
spausdinti (num1 + num2)

Rezultatas

Išvada

Išimtis įvyksta reaguojant į klaidą vykdymo metu. „Python“ išimtis galime tvarkyti naudodami „try“ ir „išskyrus blokus“. Šiame straipsnyje įvairiuose pavyzdžiuose paaiškinta, kaip „Python“ naudoti išimtis.

Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...
Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...
5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...