Python

Python-undtagelse

Python-undtagelse

En undtagelse er en begivenhed, der opstår under udførelsen af ​​et program for at afslutte eller ændre den normale strøm af et program. En fejl rejser for eksempel en undtagelse. Ligesom andre programmeringssprog indeholder Python mange indbyggede undtagelser. Disse undtagelser hæves, hvis der opstår en fejl, når programmet udføres. Fejltypen bestemmer, hvilken undtagelse der skal hæves. Når en undtagelse opstår, kontrollerer Python-tolk, om undtagelsen håndteres; hvis ikke, afslutter det programmet. Denne artikel forklarer undtagelser i Python gennem forskellige eksempler.

Indbyggede Python-undtagelser

Som diskuteret tidligere har Python mange indbyggede undtagelser, der rejses, når der opstår en fejl under udførelsen af ​​et program. Enhver undtagelse stammer fra en "Undtagelse" -klasse. Følgende inkluderer nogle indbyggede Python-undtagelser sammen med en kort beskrivelse af hver undtagelsestype:

Undtagelse Beskrivelse
Undtagelse Hver undtagelse stammer fra denne klasse.
ImportError Denne undtagelse hæves, når et specifikt modul importeres, og det findes ikke.
EOFError Dette er slutningen af ​​fil-undtagelsen. Denne undtagelse opstår, når slutningen af ​​filen er nået.
ZeroDivisionError Denne undtagelse hæves, når et tal divideres med nul.
KeyError Denne undtagelse hæves, hvis en bestemt nøgle, der ikke er defineret i en ordbog, er specificeret eller brugt.
IndexError Denne undtagelse hæves, når der er forsøgt på adgang til et sekvensindeks, der ikke er inden for området.
FlydendePointFejl Denne undtagelse hæves, når en floating-point-operation mislykkes.

Dette er nogle af de indbyggede undtagelser i Python. Besøg den officielle dokumentation for at få flere oplysninger om brug af indbyggede undtagelser i Python, der findes på https: // docs.python.org / 3 / bibliotek / undtagelser.html.

Undtagelsesanvendelse i Python

Undtagelser i Python håndteres ved hjælp af prøveerklæringen. Kodestykket, der kan kaste eller hæve en undtagelse, implementeres i en prøveblok. Ved siden af ​​prøveblokken implementeres en undtagelsesblok til at håndtere undtagelsen. I undtagelsesblokken fanger vi undtagelsen og beslutter, hvilken operation der skal udføres, når vi støder på den særlige undtagelse. Syntaksen for at skrive prøve og undtagen blokke er som følger:

prøve:
udføre operationen eller funktionen
undtagen:
funktionalitet til at håndtere undtagelsen

Nu implementerer vi en simpel kode i vores Python-script ved hjælp af prøve og undtagen blokke.

Her vil vi udskrive en 'navn' variabel, der ikke er defineret. Dette rejser en undtagelse i undtagelsesblokken.

#implementering af prøveblokken
prøve:
Print navn)
#implementering af den undtagen blok
undtagen:
print ("Der opstod en undtagelse")

Produktion

Hvis der ikke forekommer nogen undtagelse, udføres kun prøveblokken. I undtagelsesblokken udskrives en erklæring om, at der er sket en undtagelse.

Lad os se på et andet eksempel, hvor vi definerer navnet variabel:

#definerer navnet variabel
name = "Mark"
#implementering af prøveblokken
prøve:
Print navn)
#implementering af den undtagen blok
undtagen:
print ("Der opstod en undtagelse")

Produktion

I ovenstående eksempel udføres prøveblokken, og undtagelsesblokken springes over, fordi programmet ikke giver nogen undtagelser. Vi kan definere så mange undtagen blokke i vores program, som vi ønsker. Hver undtagen blok håndterer en bestemt slags undtagelse.

#implementering af prøveblokken
prøve:
Print navn)
#implementering af undtagelsesblokken for at fange navnefejlen
undtagen NameError:
print ("Variablen er ikke defineret")
#implementering af den undtagen blok
undtagen:
print ("Noget gik galt andet end navnefejl")

Produktion

I Python er Undtagelse basisklassen for alle undtagelser. I stedet for at skrive navnet på en bestemt undtagelse i undtagelsesblokken, kan vi blot skrive "Undtagelse" og fange alle typer undtagelser på denne måde.

#implementering af prøveblokken
prøve:
Print navn)
#implementering af den undtagen blok for at fange fejlen
undtagen undtagelse som exp:
print (eksp.__klasse__)
#implementering af den undtagen blok
undtagen:
print ("Noget gik galt andet end navnefejl")

Produktion

Exp.__klasse__ returnerer navnet på undtagelsesklassen.

Lad os ligeledes se på et eksempel på klassen “ZeroDivisionError”.

#implementering af prøveblokken
prøve:
x = 1/0
udskrive (x)
#implementering af den undtagen blok for at fange fejlen
undtagen undtagelse som exp:
udskriv (eksp.__klasse__)
#implementering af den undtagen blok
undtagen:
print ("Noget gik galt andet end navnefejl")

Produktion

Den anden blok

Den anden blok bruges med prøve- og undtagelsesblokkene. Den anden blok definerer et stykke kode, der udføres, hvis prøveblokken udføres med succes, og der ikke opstår nogen fejl. Nogle gange skal du muligvis udskrive en besked eller udføre en funktion, når prøveblokken er udført med succes. Af denne grund kan vi implementere den anden blok med forsøget og undtagen blokke.

I dette eksempel implementerer vi den anden blok i vores Python-script.

#implementering af prøveblokken
prøve:
x = 1/2
udskrive (x)
#implementering af den undtagen blok for at fange fejlen
undtagen undtagelse som exp:
print (eksp.__klasse__)
#implementering af den anden blok
andet:
print ("Alt gik fint")

Produktion

Den anden blok udføres efter den vellykkede udførelse af prøveblokken.

Lad os nu se på et andet eksempel ved hjælp af den anden blok.

#implementering af prøveblokken
prøve:
name = "Mark"
#implementering af den undtagen blok for at fange fejlen
undtagen undtagelse som exp:
udskriv (eksp.__klasse__)
#implementering af den anden blok
andet:
print ("Navnet er:", navn)

Produktion

I ovenstående eksempel defineres navnevariablen inde i prøveblokken og udskrives i den anden blok.

Den endelig Block

Det langt om længe blok indeholder det stykke kode, der skal udføres, uanset om prøveblokken giver en undtagelse. Den endelige blok er valgfri og erklæres med prøveblokken. For eksempel, hvis vi har åbnet en tekstfil for at læse prøveblokken, og den rejser en fejl eller undtagelse, er det bedre at vedlægge filen i den endelige blok, selvom fejlen opstår. Lad os implementere den endelige blok i vores Python-script.

#implementering af prøveblokken
prøve:
udskrive (min_dikt)
#implementering af den undtagen blok for at fange fejlen
undtagen undtagelse som exp:
print (eksp.__klasse__)
#implementering af den endelige blok
langt om længe:
print ("Dette er den endelige blok")
print ("Den endelige blok udføres")

Produktion

I output kan det ses, at prøveblokken giver en undtagelse. Den endelige blok udføres dog i slutningen.

Lad os nu åbne en tekstfil i prøveblokken, hvilket giver en undtagelse, mens filen er lukket i den endelige blok.

#implementering af prøveblokken
prøve:
fileObj = åben ("minstudent.xml "," r ")
filObj.søg (-2)
udskrive (filObj.readlines ())
#implementering af den undtagen blok
undtagen undtagelse som exp:
udskriv (eksp.__klasse__)
#implementering af den endelige blok
langt om længe:
filObj.tæt()
udskriv ("Filen er lukket")

Produktion

Som du kan se, uanset værdifejlen, er filen blevet lukket med succes inden i den endelige blok.

Forøg en undtagelse

Selvom undtagelser hæves automatisk, når der opstår en fejl, kan du i Python også hæve undtagelser manuelt. Det hæve nøgleord bruges til at hæve eller smide undtagelsen.

Vi hæver nu nogle undtagelser ved hjælp af søgeordet rejse. I det følgende eksempel er if-betingelsen implementeret for at kontrollere for ikke-negative tal. Hvis der findes ikke-negative tal, hæves undtagelsen "Ikke-negative tal er ikke tilladt".

#declaring to nummervariabler
num1 = 20
num2 = -10
hvis ((num1<0) | (num2<0)):
hæv undtagelsen ("Ikke-negative tal er ikke tilladt")
andet:
udskriv (num1 + num2)

Produktion

Konklusion

En undtagelse opstår som svar på en fejl på kørselstidspunktet. I Python kan vi håndtere undtagelser ved hjælp af prøve og undtagen blokke. Denne artikel forklarede, hvordan man bruger undtagelser i Python gennem forskellige eksempler.

Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...