Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python-fouten en ingebouwde uitzonderingen

Python-fouten en ingebouwde uitzonderingen

In deze zelfstudie leert u over verschillende soorten fouten en uitzonderingen die in Python zijn ingebouwd. Ze worden geactiveerd wanneer de Python-interpreter fouten tegenkomt.

Video:Afhandeling van Python-uitzonderingen

We kunnen bepaalde fouten maken tijdens het schrijven van een programma die tot fouten leiden wanneer we het proberen uit te voeren. Een python-programma wordt beëindigd zodra het een onverwerkte fout tegenkomt. Deze fouten kunnen grofweg in twee klassen worden ingedeeld:

  1. Syntaxisfouten
  2. Logische fouten (uitzonderingen)

Python-syntaxisfouten

Fout veroorzaakt door het niet volgen van de juiste structuur (syntaxis) van de taal wordt syntaxisfout genoemd of parseerfout .

Laten we een voorbeeld bekijken:

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

Zoals in het voorbeeld wordt getoond, geeft een pijl aan waar de parser de syntaxisfout tegenkwam.

We kunnen hier zien dat een dubbele punt : ontbreekt in de if verklaring.


Logische Python-fouten (uitzonderingen)

Fouten die optreden tijdens runtime (na het passeren van de syntaxistest) worden uitzonderingen genoemd of logische fouten .

Ze treden bijvoorbeeld op wanneer we een bestand proberen te openen (om te lezen) dat niet bestaat (FileNotFoundError ), probeer een getal te delen door nul (ZeroDivisionError ), of probeer een module te importeren die niet bestaat (ImportError ).

Telkens wanneer dit soort runtime-fouten optreden, maakt Python een uitzonderingsobject. Als het niet op de juiste manier wordt afgehandeld, wordt een traceback naar die fout afgedrukt, samen met enkele details over waarom die fout is opgetreden.

Laten we eens kijken hoe Python deze fouten behandelt:

>>> 1 / 0
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero

>>> open("imaginary.txt")
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'

Ingebouwde Python-uitzonderingen

Illegale operaties kunnen uitzonderingen opleveren. Er zijn tal van ingebouwde uitzonderingen in Python die worden gegenereerd wanneer overeenkomstige fouten optreden. We kunnen alle ingebouwde uitzonderingen bekijken met behulp van de ingebouwde local() functioneren als volgt:

print(dir(locals()['__builtins__']))

locals()['__builtins__'] retourneert een module met ingebouwde uitzonderingen, functies en attributen. dir stelt ons in staat om deze attributen als strings weer te geven.

Enkele van de veelvoorkomende ingebouwde uitzonderingen in Python-programmering, samen met de fout die ze veroorzaakt, worden hieronder vermeld:

Uitzondering Oorzaak van fout
AssertionError Verhoogd wanneer een assert verklaring mislukt.
AttributeError Verhoogd wanneer attribuuttoewijzing of referentie mislukt.
EOFError Verhoogd wanneer de input() functie raakt einde bestand.
FloatingPointError Verhoogd wanneer een drijvende-kommabewerking mislukt.
GeneratorExit Verhoog wanneer een generator close() methode wordt aangeroepen.
ImportError Verhoogd wanneer de geïmporteerde module niet wordt gevonden.
IndexError Verhoogd wanneer de index van een reeks buiten bereik is.
KeyError Verhoogd wanneer een sleutel niet in een woordenboek wordt gevonden.
KeyboardInterrupt Verhoogd wanneer de gebruiker op de interrupt-toets drukt (Ctrl+C of Delete ).
MemoryError Verhoogd wanneer een bewerking onvoldoende geheugen heeft.
NameError Verhoogd wanneer een variabele niet wordt gevonden in het lokale of globale bereik.
NotImplementedError Opgevoed door abstracte methoden.
OSError Verhoogd wanneer systeemwerking systeemgerelateerde fouten veroorzaakt.
OverflowError Verhoogd wanneer het resultaat van een rekenkundige bewerking te groot is om te worden weergegeven.
ReferenceError Wordt verhoogd wanneer een zwakke referentieproxy wordt gebruikt om toegang te krijgen tot een op rommel verzamelde referent.
RuntimeError Wordt opgeheven wanneer een fout niet onder een andere categorie valt.
StopIteration Opgegroeid door next() functie om aan te geven dat er geen verder item is dat door de iterator moet worden geretourneerd.
SyntaxError Verhoogd door parser wanneer syntaxisfout wordt aangetroffen.
IndentationError Verhoogd wanneer er een onjuiste inspringing is.
TabError Verhoogd wanneer inspringen bestaat uit inconsistente tabs en spaties.
SystemError Wordt opgeheven wanneer de tolk een interne fout detecteert.
SystemExit Opgegroeid door sys.exit() functie.
TypeError Wordt verhoogd wanneer een functie of bewerking wordt toegepast op een object van een onjuist type.
UnboundLocalError Wordt verhoogd wanneer er wordt verwezen naar een lokale variabele in een functie of methode, maar er is geen waarde aan die variabele gebonden.
UnicodeError Verhoogd wanneer een Unicode-gerelateerde coderings- of decoderingsfout optreedt.
UnicodeEncodeError Wordt opgeheven wanneer een Unicode-gerelateerde fout optreedt tijdens het coderen.
UnicodeDecodeError Wordt opgeheven wanneer een Unicode-gerelateerde fout optreedt tijdens het decoderen.
UnicodeTranslateError Wordt opgeheven wanneer een Unicode-gerelateerde fout optreedt tijdens het vertalen.
ValueError Verhoogd wanneer een functie een argument van het juiste type maar een onjuiste waarde krijgt.
ZeroDivisionError Verhoogd wanneer de tweede operand van deling of modulo-bewerking nul is.

Indien nodig kunnen we ook onze eigen uitzonderingen definiëren in Python. Ga naar Python User-defined Exceptions voor meer informatie.

We kunnen deze ingebouwde en door de gebruiker gedefinieerde uitzonderingen in Python afhandelen met behulp van try , except en finally verklaringen. Voor meer informatie over hen, bezoek Python try, behalve en tenslotte statements.


Python

  1. Python-sleutelwoorden en -ID's
  2. Python-verklaring, inspringing en opmerkingen
  3. Python-variabelen, constanten en literalen
  4. Python Type Conversie en Type Casting
  5. Python invoer, uitvoer en import
  6. Python globale, lokale en niet-lokale variabelen
  7. Python-nummers, typeconversie en wiskunde
  8. Python-directory en bestandsbeheer
  9. Aangepaste Python-uitzonderingen
  10. Hoe de huidige datum en tijd in Python te krijgen?
  11. Java worp en worpen