Python

Python-uitzondering

Python-uitzondering

Een uitzondering is een gebeurtenis die zich voordoet tijdens de uitvoering van een programma om de normale stroom van een programma te beëindigen of te wijzigen. Een fout leidt bijvoorbeeld tot een uitzondering. Net als andere programmeertalen bevat Python veel ingebouwde uitzonderingen. Deze uitzonderingen treden op als er een fout wordt aangetroffen wanneer het programma wordt uitgevoerd. Het type fout bepaalt welke uitzondering moet worden gemaakt. Wanneer er een uitzondering optreedt, controleert de Python-interpreter of de uitzondering wordt afgehandeld; zo niet, dan beëindigt het het programma. Dit artikel legt uitzonderingen in Python uit aan de hand van verschillende voorbeelden.

Ingebouwde Python-uitzonderingen

Zoals eerder besproken, heeft Python veel ingebouwde uitzonderingen die worden gegenereerd wanneer er een fout optreedt tijdens de uitvoering van een programma. Elke uitzondering is afgeleid van een basisklasse "Uitzondering". Het volgende bevat enkele ingebouwde Python-uitzonderingen, samen met een korte beschrijving van elk uitzonderingstype:

Uitzondering Omschrijving
Uitzondering Elke uitzondering is afgeleid van deze klasse.
Importfout Deze uitzondering treedt op wanneer een specifieke module wordt geïmporteerd en niet wordt gevonden.
EOFEror Dit is de uitzondering voor het einde van het bestand. Deze uitzondering treedt op wanneer het einde van het bestand is bereikt.
ZeroDivisionFout Deze uitzondering treedt op wanneer een getal wordt gedeeld door nul.
Sleutelfout Deze uitzondering treedt op als een bepaalde sleutel die niet in een woordenboek is gedefinieerd, wordt opgegeven of gebruikt.
Indexfout Deze uitzondering treedt op wanneer geprobeerd is toegang te krijgen tot een index van een reeks die niet binnen het bereik valt.
FloatingPointError Deze uitzondering treedt op wanneer een drijvende-kommabewerking is mislukt.

Dit zijn enkele van de ingebouwde uitzonderingen in Python. Bezoek de officiële documentatie voor meer informatie over het gebruik van ingebouwde uitzonderingen in Python, te vinden op https://docs.Python.org/3/bibliotheek/uitzonderingen.html.

Gebruik van uitzonderingen in Python

Uitzonderingen in Python worden afgehandeld met behulp van de try-instructie. Het stukje code dat een exception kan genereren of genereren, is geïmplementeerd in een try-blok. Naast het try-blok is een uitzonderingsblok geïmplementeerd om de uitzondering af te handelen. In het uitzonderingsblok vangen we de uitzondering op en beslissen we welke bewerking moet worden uitgevoerd wanneer we die specifieke uitzondering tegenkomen. De syntaxis van het schrijven van de try-and-behalve-blokken is als volgt:

proberen:
de bewerking of functie uitvoeren perform
behalve:
functionaliteit om de uitzondering af te handelen

Nu zullen we een eenvoudige code in ons Python-script implementeren met behulp van de try-and-behalve-blokken.

Hier zullen we een 'naam'-variabele afdrukken die niet is gedefinieerd. Dit roept een uitzondering op in het behalve blok.

#implementeren van het try-blok
proberen:
print naam)
#implementeren van het behalve blok
behalve:
print("Er is een uitzondering opgetreden")

Uitgang:

Als er geen uitzondering optreedt, wordt alleen het try-blok uitgevoerd. In het uitzonderingsblok wordt een verklaring afgedrukt dat er een uitzondering is opgetreden.

Laten we een ander voorbeeld bekijken waarin we de naamvariabele definiëren:

#defining the name variable
naam = "Mark"
#implementeren van het try-blok
proberen:
print naam)
#implementeren van het behalve blok
behalve:
print("Er is een uitzondering opgetreden")

Uitgang:

In het bovenstaande voorbeeld wordt het try-blok uitgevoerd en wordt het behalve-blok overgeslagen omdat het programma geen uitzonderingen maakt. We kunnen zoveel behalve blokken in ons programma definiëren als we willen. Elk behalve blok behandelt een specifiek soort uitzondering.

#implementeren van het try-blok
proberen:
print naam)
#implementeer het behalve blok om de naamfout op te vangen
behalve NaamError:
print("De variabele is niet gedefinieerd")
#implementeren van het behalve blok
behalve:
print("Er is iets misgegaan behalve een naamfout")

Uitgang:

In Python is Exception de basisklasse voor alle uitzonderingen. In plaats van de naam van een bepaalde uitzondering in het uitzonderingsblok te schrijven, kunnen we eenvoudig "Uitzondering" schrijven en elk type uitzondering op deze manier opvangen.

#implementeren van het try-blok
proberen:
print naam)
#implementeer het behalve blok om de fout op te vangen
uitzondering Uitzondering als exp:
print(exp.__klasse__)
#implementeren van het behalve blok
behalve:
print("Er is iets misgegaan behalve een naamfout")

Uitgang:

de tentoonstelling.__class__ retourneert de naam van de uitzonderingsklasse.

Laten we op dezelfde manier naar een voorbeeld van de klasse "ZeroDivisionError" kijken.

#implementeren van het try-blok
proberen:
x=1/0
afdrukken(x)
#implementeer het behalve blok om de fout op te vangen
uitzondering Uitzondering als exp:
print(exp.__klasse__)
#implementeren van het behalve blok
behalve:
print("Er is iets misgegaan behalve een naamfout")

Uitgang:

Het anders Blok

Het else-blok wordt gebruikt met de try- en exception-blokken. Het else-blok definieert een stuk code dat wordt uitgevoerd als het try-blok succesvol wordt uitgevoerd en er geen fout optreedt. Soms moet u een bericht afdrukken of een functie uitvoeren wanneer het try-blok met succes is uitgevoerd. Om deze reden kunnen we het else-blok implementeren met de try-and-behalve-blokken.

In dit voorbeeld zullen we het else-blok in ons Python-script implementeren.

#implementeren van het try-blok
proberen:
x=1/2
afdrukken(x)
#implementeer het behalve blok om de fout op te vangen
uitzondering Uitzondering als exp:
print(exp.__klasse__)
#implementeren van het else-blok
anders:
print("Alles ging prima")

Uitgang:

Het else-blok wordt uitgevoerd na de succesvolle uitvoering van het try-blok.

Laten we nu naar een ander voorbeeld kijken met het else-blok.

#implementeren van het try-blok
proberen:
naam = "Mark"
#implementeer het behalve blok om de fout op te vangen
uitzondering Uitzondering als exp:
print(exp.__klasse__)
#implementeren van het else-blok
anders:
print("De naam is: ",naam)

Uitgang:

In het bovenstaande voorbeeld is de naamvariabele gedefinieerd in het try-blok en wordt afgedrukt in het else-blok.

Het eindelijk Blok

De Tenslotte blok bevat het stuk code dat moet worden uitgevoerd, ongeacht of het try-blok een uitzondering genereert. Het definitieve blok is optioneel en wordt gedeclareerd met het try-blok. Als we bijvoorbeeld een tekstbestand hebben geopend om het try-blok te lezen en er een fout of uitzondering wordt gegenereerd, is het beter om het bestand in het definitieve blok in te sluiten, zelfs als de fout optreedt. Laten we het laatste blok in ons Python-script implementeren.

#implementeren van het try-blok
proberen:
print(mijn_dictaat)
#implementeer het behalve blok om de fout op te vangen
uitzondering Uitzondering als exp:
print(exp.__klasse__)
#implementeren van het eindelijk blok
Tenslotte:
print("Dit is het laatste blok")
print("Het laatste blok wordt uitgevoerd")

Uitgang:

In de uitvoer is te zien dat het try-blok een uitzondering genereert. Het laatste blok wordt echter aan het einde uitgevoerd.

Laten we nu een tekstbestand openen in het try-blok, dat een uitzondering genereert terwijl het bestand ingesloten in het final-blok.

#implementeren van het try-blok
proberen:
fileObj=open("mijnstudent.xml","r")
bestandObj.zoeken(-2)
print(fileObj.leesregels())
#implementeren van het behalve blok
uitzondering Uitzondering als exp:
print(exp.__klasse__)
#implementeren van het eindelijk blok
Tenslotte:
bestandObj.dichtbij()
print("Bestand is succesvol afgesloten")

Uitgang:

Zoals u kunt zien, is het bestand, ongeacht de waardefout, met succes gesloten in het laatste blok.

Een uitzondering maken

Hoewel uitzonderingen automatisch worden gegenereerd wanneer er een fout optreedt, kunt u in Python uitzonderingen ook handmatig verhogen. De verhogen trefwoord wordt gebruikt om de uitzondering te verhogen of te gooien.

We zullen nu enkele uitzonderingen opwerpen met het trefwoord raise raise. In het volgende voorbeeld wordt de if-voorwaarde geïmplementeerd om te controleren op niet-negatieve getallen. Als er niet-negatieve getallen bestaan, wordt de uitzondering "Niet-negatieve getallen zijn niet toegestaan" opgeheven.

#declareren van twee getalvariabelen
aantal1 = 20
aantal2= -10
als ((getal1<0) | (num2<0)):
raise Exception("Niet-negatieve getallen zijn niet toegestaan")
anders:
print(getal1+getal2)

Uitgang:

Conclusie

Er treedt een uitzondering op als reactie op een fout tijdens runtime. In Python kunnen we uitzonderingen afhandelen door de try-and-except-blokken te gebruiken. In dit artikel wordt uitgelegd hoe je uitzonderingen in Python kunt gebruiken aan de hand van verschillende voorbeelden.

Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...
Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...