Site Overlay

Built-in Exceptions¶

Concrete exceptions¶

The following exceptions are the exceptions that are usually raised.

exceptionAssertionError

Raised when an assert statement fails.

exceptionAttributeError

Raised when an attribute reference (see Attribute references) orassignment fails. (When an object does not support attribute references orattribute assignments at all, TypeError is raised.,)

exceptionEOFError¶ exceptionFloatingPointError

Not currently used.

exceptionGeneratorExit

Raised when a generator or coroutine is closed;see generator.close() and coroutine.close(). Itdirectly inherits from BaseException instead of Exception sinceit is technically not an error.

exceptionImportError

Raised when the import statement has troubles trying toload a module., Ook verhoogd wanneer de” from list “in from ... importeen naam heeft die niet gevonden kan worden.

de attributen name en path kunnen worden ingesteld met behulp van keyword-onlyarguments aan de constructor. Wanneer ingesteld representeren ze respectievelijk de naam van de moduledat werd geprobeerd te worden geïmporteerd en het pad naar elk bestand dat de uitzondering triggerde.

gewijzigd in versie 3.3: name toegevoegd en path attributen.,

uitzonderingModuleNotFoundError

een subklasse van ImportError die wordt verhoogd door importwanneer een module niet kon worden gevonden. Het wordt ook verhoogd wanneer Nonewordt gevonden in sys.modules.

nieuw in versie 3.6.

uitzonderingIndexError

verhoogd wanneer een sequentiesubscript buiten bereik is. (Slice-indices worden stilletjes afgekapt om binnen het toegestane bereik te vallen; als een index niet eeninteger is, wordt TypeError verhoogd.,)

exceptionKeyError

verhoogd wanneer een toewijzingssleutel (woordenboek) niet wordt gevonden in de verzameling bestaande sleutels.

exceptionKeyboardInterrupt

verhoogd wanneer de gebruiker de interrupt sleutel raakt (normaal gesproken Control-C orDelete). Tijdens de uitvoering, een controle op interrupts is maderegularly. De uitzondering erft van BaseException om niet per ongeluk te worden gevangen met een code die Exception vangt en zo te voorkomen dat de interpreter wordt verlaten.,

exceptionMemoryError

verhoogd wanneer een operatie geen geheugen meer heeft, maar de situatie kan nog steeds verslechteren (door sommige Objecten te verwijderen). De bijbehorende waarde is een tekenreeks die aangeeft wat voor soort (interne) operatie geen geheugen meer heeft. Merk op dat vanwege de onderliggende geheugenbeheerarchitectuur (c ‘ s malloc() functie), de interpretator misschien niet altijd in staat is om volledig te herstellen van deze situatie; het roept echter een uitzondering op zodat een stack traceback kan worden afgedrukt, in het geval dat een run-away programma de oorzaak was.,

exceptionNameError

verhoogd wanneer een lokale of globale naam niet wordt gevonden. Dit geldt alleen voor gekwalificeerde namen. De bijbehorende waarde is een foutmelding die de naam bevat die niet kon worden gevonden.

uitzonderingNotImplementedError

deze uitzondering is afgeleid vanRuntimeError. In gebruikergedefinieerde basisklassen, zouden abstracte methoden deze uitzondering moeten verhogen wanneer zij afgeleide klassen vereisen om de methode te overschrijven, of terwijl de klasse wordt ontwikkeld om aan te geven dat de echte implementatie nog moet worden toegevoegd.,

Note

Het mag niet worden gebruikt om aan te geven dat een operator of methode helemaal niet moet worden ondersteund – in dat geval laat de operator /methode niet gedefinieerd of, als een subklasse, zet het op None.

Note

NotImplementedError en NotImplemented zijn niet uitwisselbaar,ook al hebben ze vergelijkbare namen en doeleinden. ZieNotImplemented voor details over wanneer het te gebruiken.,

exceptionOSError()¶ exceptionOSError(errno, strerror]])

deze uitzondering wordt verhoogd wanneer een systeemfunctie een systeem-relatederror retourneert, inclusief I / O-fouten zoals “file not found” of “disk full”(niet voor illegale argumenttypen of andere incidentele fouten).

de tweede vorm van de constructor stelt de bijbehorende attributen in, die hieronder worden beschreven. De attributen standaard None indien niet gespecificeerd., Voor achterwaartse compatibiliteit,als drie argumenten worden doorgegeven, bevat het args attribuut slechts een 2-tuplevan de eerste twee constructorargumenten.

De constructor geeft vaak een subklasse van OSError terug, zoals beschreven in OS uitzonderingen hieronder. De specifieke subklasse is afhankelijk van de uiteindelijke errno waarde. Dit gedrag treedt alleen op bij het construeren van OSError direct of via een alias, en wordt niet bevestigd bij subclassering.,

errno

een numerieke foutcode van de C-variabele errno.

winerror

onder Windows geeft dit de foutcode van nativeWindows. Het attribuut errno is dan een approximatetransformatie, in POSIX-termen, van die oorspronkelijke foutcode.

onder Windows,als het argument winerror constructor een geheel getal is,wordt het attribuut errno bepaald door de Windows-foutcode, en wordt het errno-argument genegeerd., Op andere platforms wordt het argument wolerror genegeerd, en de winerror attributed bestaat niet.

strerror

de overeenkomstige foutmelding, zoals verstrekt door het besturingssysteem. Het wordt geformatteerd door de Cfunctions perror() onder POSIX, en FormatMessage()onder Windows.

filenamefilename2

voor uitzonderingen die een bestandssysteem pad impliceren (zoals open() ofos.unlink()), filename is de bestandsnaam doorgegeven aan de functie.,Voor functies die twee bestandssysteempaden omvatten (zoalsos.rename()), komt filename2 overeen met de naam van het tweede bestand die aan de functie is doorgegeven.

Gewijzigd in versie 3.3: EnvironmentError, IOError, WindowsError,socket.error, select.error enmmap.error samengevoegd in OSError, en theconstructor kan een subklasse.

gewijzigd in versie 3.,4 :Hetfilename attribuut is nu de originele bestandsnaam doorgegeven aan de functie, in plaats van de naam gecodeerd naar of gedecodeerd van het bestandssysteem codering. Ook werd het argument bestandsnaam 2 constructor en attribute toegevoegd.

exceptionOverflowError

verhoogd wanneer het resultaat van een rekenkundige bewerking te groot is om te worden weergegeven. Dit kan niet voorkomen voor gehele getallen (die lieverMemoryError verhogen dan opgeven). Echter, om historische redenen, OverflowError wordt soms verhoogd voor gehele getallen die buiten een requiredrange., Wegens het gebrek aan standaardisatie van de drijvende-komma-uitzonderingsbehandeling in C worden de meeste drijvende-komma-operaties niet gecontroleerd.

uitzonderingRecursionError

deze uitzondering is afgeleid vanRuntimeError. Het wordt verhoogd wanneer de interpreter detecteert dat de maximale recursie diepte (ziesys.getrecursionlimit()) wordt overschreden.

nieuw in versie 3.5: eerder werd een gewone RuntimeError verhoogd.,

exceptionReferenceError

deze uitzondering wordt verhoogd wanneer een zwakke referentieproxy, aangemaakt door deweakref.proxy() functie, wordt gebruikt om toegang te krijgen tot een attribuut van de referent nadat het vuilnis is verzameld. Voor meer informatie over zwakke referenties,zie de weakref module.

exceptionRuntimeError

verhoogd wanneer een fout wordt gedetecteerd die niet in een van de andere categorieën valt. De bijbehorende waarde is een string die aangeeft wat precies wentwrong.,

exceptionStopIteration

verhoogd door ingebouwde functie next() en een iterator ‘ s__next__() methode om aan te geven dat er geen verdere items worden geproduceerd door de iterator.

het exception object heeft een enkel attribuut value, dat wordt gegeven als argument bij het construeren van de uitzondering, en defaultsto None.,

wanneer een generator of coroutinefunctie terugkeert, wordt een nieuwe StopIteration instantie geisraiseerd, en wordt de waarde die door de functie wordt geretourneerd gebruikt als devalue parameter aan de constructeur van de uitzondering.

als een generatorcode direct of indirect StopIterationverhoogt,wordt deze omgezet in een RuntimeError (met behoud van deStopIteration als de oorzaak van de nieuwe uitzondering).

gewijzigd in versie 3.3: toegevoegdvalue attribuut en de mogelijkheid voor generator functies touse it to return a value.,

gewijzigd in versie 3.5: introduceerde de RuntimeError transformatie viafrom __future__ import generator_stop, zie PEP 479.

gewijzigd in versie 3.7: schakel PEP 479 voor alle code standaard in: a StopIterationfout in een generator wordt omgezet in een RuntimeError.

uitzonderingStopAsyncIteration

moet worden verhoogd met __anext__() methode van anasynchrone iterator object om de iteratie te stoppen.

nieuw in versie 3.5.,

uitzonderingSyntaxError

verhoogd wanneer de parser een syntaxfout tegenkomt. Dit kan voorkomen in eenimport statement, in een aanroep naar de ingebouwde functiesexec()ofeval(), of bij het lezen van het initiële script of standaardinvoer(ook interactief).

instanties van deze klasse hebben attributen filename, lineno,offset en text voor gemakkelijkere toegang tot de details., str()van de uitzondering instantie geeft alleen het bericht.

exceptionIndentationError

basisklasse voor syntaxisfouten gerelateerd aan onjuist inspringen. Dit is een subklasse van SyntaxError.

exceptionTabError

verhoogd wanneer inspringen een inconsistent gebruik van tabs en spaties bevat.Dit is een subklasse van IndentationError.

exceptionSystemError

verhoogd wanneer de interpreter een interne fout vindt, maar de situatie ziet er niet zo ernstig uit dat het alle hoop laat varen., De bijbehorende waarde is astring wat aangeeft wat er mis ging (in low-level termen).

u moet dit rapporteren aan de Auteur of onderhouder van uw Python interpreter.Be zorg ervoor dat u de versie van de Python-interpreter rapporteert (sys.version; het wordt ook afgedrukt aan het begin van een interactieve Python-sessie), de exacte errormessage (de bijbehorende waarde van de uitzondering) en indien mogelijk de bron van het programma dat de fout heeft veroorzaakt.

uitzonderingSystemExit

deze uitzondering wordt verhoogd door de functiesys.exit()., Het erft vanBaseException in plaats van Exception zodat het niet per ongeluk wordt gevangen door code die Exceptionvangt. Dit staat de uitzondering toe om zich proper te verspreiden en ervoor te zorgen dat de interpreter stopt. Als het niet wordt behandeld, wordt de Python-interpreter afgesloten; er wordt geen traceback van stack afgedrukt. Theconstructor accepteert hetzelfde optionele argument dat wordt doorgegeven aan sys.exit().,Als de waarde een geheel getal is, specificeert het de systeemuitvoerstatus (doorgegeven aan toC ‘ s exit() functie); als het None is, is de uitvoerstatus nul; als het een ander type heeft (zoals een string), wordt de waarde van het object afgedrukt en de uitvoerstatus is één.

een aanroep naar sys.exit() wordt vertaald in een uitzondering zodat clean-uphandlers (finally clausules van try statements) uitgevoerd kunnen worden, en zodat een debugger een script kan uitvoeren zonder het risico te lopen de controle te verliezen., De functie os._exit() kan worden gebruikt als het absoluut noodzakelijk is om onmiddellijk af te sluiten (bijvoorbeeld in het dochterproces na een aanroep naar os.fork()).

code

De afsluitstatus of foutmelding die wordt doorgegeven aan de constructor.(Standaard None.)

exceptionTypeError

verhoogd wanneer een operatie of functie wordt toegepast op een object van ongepast type. De bijbehorende waarde is een string die details geeft over het type mismatch.,

deze uitzondering kan door gebruikerscode worden verhoogd om aan te geven dat een poging tot actie op een object niet wordt ondersteund, en ook niet bedoeld is. Als een object bedoeld is om een bepaalde operatie te ondersteunen, maar nog geen uitvoering heeft gegeven, is NotImplementedError de juiste uitzondering om te verhogen.

het passeren van argumenten van het verkeerde type (bijvoorbeeld het passeren van een list wanneer eenint wordt verwacht) moet resulteren in een TypeError, maar het passeren vanargumenten met de verkeerde waarde( bijv., een getal buiten de verwachte grenzen) moet resulteren in een ValueError.

exceptionUnboundLocalError

verhoogd wanneer een verwijzing wordt gemaakt naar een lokale variabele in een functie of methode, maar er is geen waarde gebonden aan die variabele. Dit is een subklasse vanNameError.

exceptionUnicodeError

verhoogd wanneer een Unicode-gerelateerde coderingsfout optreedt. Het is een subklasse van ValueError.

UnicodeError heeft attributen die de codering of decodingerror beschrijven., Bijvoorbeeld, err.object geeft de specifieke valid input waar de codec op faalde.

encoding

de naam van de codering die de fout deed ontstaan.

reason

een tekenreeks die de specifieke codec-fout beschrijft.

object

het object dat de codec probeerde te coderen of te decoderen.

start

de eerste index van ongeldige gegevens in object.

end

de index na de laatste ongeldige gegevens in object.,

exceptionUnicodeEncodeError

Raised when a Unicode-related error occurs during encoding. It is a subclass ofUnicodeError.

exceptionUnicodeDecodeError

Raised when a Unicode-related error occurs during decoding. It is a subclass ofUnicodeError.

exceptionUnicodeTranslateError

Raised when a Unicode-related error occurs during translating. It is a subclassof UnicodeError.,

exceptionValueError

verhoogd wanneer een operatie of functie een argument ontvangt dat het juiste type maar een ongepaste waarde heeft, en de situatie niet wordt beschreven door een meer precieze uitzondering zoals IndexError.

exceptionZeroDivisionError

verhoogd wanneer het tweede argument van een deling of modulo operatie nul is. De geassocieerde waarde is een tekenreeks die het type van de operanden en de operatie aangeeft.

de volgende uitzonderingen worden bewaard voor compatibiliteit met eerdere versies; vanaf Python 3.,3, het zijn aliassen van OSError.

uitzonderingEnvironmentError¶ uitzonderingIOError¶ uitzonderingWindowsError

alleen beschikbaar op Windows.

OS uitzonderingen¶

de volgende uitzonderingen zijn subklassen van OSError, ze worden verhoogd afhankelijk van de systeemfoutcode.

exception BlockingIOError

verhoogd wanneer een operatie zou blokkeren op een object (bijvoorbeeld socket) ingesteld voor niet-blokkerende operatie.,Komt overeen met errno EAGAIN, EALREADY,EWOULDBLOCK en EINPROGRESS.

naast die van OSError, BlockingIOError kan nog een attribuut hebben:

characters_written

een geheel getal dat het aantal tekens bevat dat naar de stream is geschreven voordat het werd geblokkeerd. Dit kenmerk is beschikbaar bij gebruik van de gebufferde I / O-klassen van deio module.,

exception ChildProcessError

Raised when an operation on a child process failed.Corresponds to errno ECHILD.

exception ConnectionError

A base class for connection-related issues.

Subclasses are BrokenPipeError, ConnectionAbortedError,ConnectionRefusedError and ConnectionResetError.,

exception BrokenPipeError

een subklasse van ConnectionError, verhoogd wanneer geprobeerd wordt op apipe te schrijven terwijl het andere uiteinde gesloten is, of wanneer geprobeerd wordt te schrijven op een socket die afgesloten is voor schrijven.Komt overeen met errno EPIPE en ESHUTDOWN.

exception ConnectionAbortedError

een subklasse van ConnectionError, verhoogd wanneer een verbinding wordt afgebroken door de peer.Komt overeen met errno ECONNABORTED.,

exception ConnectionRefusedError

een subklasse van ConnectionError, verhoogd wanneer een poging tot verbinding wordt geweigerd door de peer.Komt overeen met errno ECONNREFUSED.

exception ConnectionResetError

een subklasse van ConnectionError, verhoogd wanneer een verbinding wordt ingesteld door de peer.Komt overeen met errno ECONNRESET.

exception FileExistsError

verhoogd bij het maken van een bestand of map die al bestaat.,Corresponds to errno EEXIST.

exception FileNotFoundError

Raised when a file or directory is requested but doesn’t exist.Corresponds to errno ENOENT.

exception InterruptedError

Raised when a system call is interrupted by an incoming signal.Corresponds to errno EINTR.

Changed in version 3.,5: Python probeert nu systeemaanroepen opnieuw wanneer een syscall wordt onderbroken door asignal, behalve als de signal handler een uitzondering maakt (zie PEP 475voor de motivering), in plaats van InterruptedErrorte verhogen.

uitzondering IsADirectoryError

verhoogd wanneer een bestandsoperatie (zoals os.remove()) wordt aangevraagd in een map.Komt overeen met errno EISDIR.

exception NotADirectoryError

verhoogd wanneer een mapbewerking (zoals os.listdir()) wordt aangevraagd op iets dat geen map is.,Corresponds to errno ENOTDIR.

exception PermissionError

Raised when trying to run an operation without the adequate accessrights – for example filesystem permissions.Corresponds to errno EACCES and EPERM.

exception ProcessLookupError

Raised when a given process doesn’t exist.Corresponds to errno ESRCH.

exception TimeoutError

Raised when a system function timed out at the system level.,Komt overeen met errno ETIMEDOUT.

nieuw in versie 3.3: alle bovenstaandeOSError subklassen zijn toegevoegd.

zie ook

PEP 3151 – herwerken van de OS-en IO-uitzonderingshiërarchie

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *