Alle Instanzen in Python müssen Instanzen einer Klasse sein, die von BaseException abgeleitet ist . Zwei Ausnahmeklassen, die nicht über Unterklassen verknüpft sind, sind niemals gleichwertig, selbst wenn sie denselben Namen haben. Die integrierten Ausnahmen können vom Interpreter oder von integrierten Funktionen generiert werden.

In Python gibt es mehrere integrierte Ausnahmen, die ausgelöst werden, wenn Fehler auftreten. Diese integrierten Ausnahmen können mit den integrierten Funktionen local() wie folgt angezeigt werden :

>>> local() ['__ builtins__']

Dies gibt ein Wörterbuch mit integrierten Ausnahmen, Funktionen und Attributen zurück.

Basisklassen

Die folgenden Ausnahmen werden hauptsächlich als Basisklassen für andere Ausnahmen verwendet.



  1. Ausnahme BaseException
    Dies ist die Basisklasse für alle integrierten Ausnahmen. Es soll nicht direkt von benutzerdefinierten Klassen geerbt werden. Für benutzerdefinierte Klassen wird Exception verwendet. Diese Klasse ist für die Erstellung einer Zeichenfolgendarstellung der Ausnahme mithilfe von str() unter Verwendung der übergebenen Argumente verantwortlich. Eine leere Zeichenfolge wird zurückgegeben, wenn keine Argumente vorhanden sind.
    • args: Die args sind das Tupel von Argumenten, die dem Ausnahmekonstruktor gegeben wurden.
    • with_traceback (tb): Diese Methode wird normalerweise bei der Ausnahmebehandlung verwendet. Diese Methode legt tb als neuen Traceback für die Ausnahme fest und gibt das Ausnahmeobjekt zurück.

      Code:

      Versuchen:
          ...
      außer SomeException:
          tb = sys.exc_info() [2]
          AndereException auslösen (...). with_traceback (tb)
      
  2. Ausnahme Ausnahme
    Dies ist die Basisklasse für alle integrierten Ausnahmen, die das System nicht beenden. Alle benutzerdefinierten Ausnahmen sollten ebenfalls von dieser Klasse abgeleitet werden.
  3. Ausnahme ArithmeticError
    Diese Klasse ist die Basisklasse für die integrierten Ausnahmen, die für verschiedene arithmetische Fehler ausgelöst werden, z.
    • Überlauffehler
    • ZeroDivisionError
    • FloatingPointError

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    try:  
        a = 10/0  
        print (a)
    except ArithmeticError:  
            print ("This statement is raising an arithmetic exception.")
    else:  
        print ("Success.")
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Diese Aussage löst eine arithmetische Ausnahme aus.
    
  4. Ausnahme BufferError
    Diese Ausnahme wird ausgelöst , wenn pufferbezogene Operationen nicht ausgeführt werden können.
  5. Ausnahme LookupError
    Dies ist die Basisklasse für die Ausnahmen, die ausgelöst werden, wenn ein Schlüssel oder Index, der für eine Zuordnung oder Sequenz verwendet wird, ungültig ist oder nicht gefunden wird. Die Ausnahmen sind:
    • KeyError
    • IndexError

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    try
        a = [1, 2, 3
        print (a[3]) 
    except LookupError: 
        print ("Index out of bound error.")
    else
        print ("Success")
      
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :



    Index außerhalb des gebundenen Fehlers.
    

Konkrete Ausnahmen

Die folgenden Ausnahmen sind die Ausnahmen, die normalerweise ausgelöst werden.

  1. Ausnahme AssertionError
    Ein AssertionError wird ausgelöst, wenn eine assert-Anweisung fehlschlägt.

    Beispiel:

    Assert False, 'Die Assertion ist fehlgeschlagen'
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "Ausnahmen_AssertionError.py", Zeile 12, in
        Assert False, 'Die Assertion ist fehlgeschlagen'
    AssertionError: Die Assertion ist fehlgeschlagen
    
  2. Ausnahme AttributeError
    Ein AttributeError wird ausgelöst, wenn eine Attributreferenz oder Zuweisung fehlschlägt, z. B. wenn auf ein nicht vorhandenes Attribut verwiesen wird.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    class Attributes(object):
        pass
      
    object = Attributes()
    print (object.attribute)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "d912bae549a2b42953bc62da114ae7a7.py", Zeile 5, in
        print object.attribute
    AttributeError: Das Objekt 'Attribute' hat kein Attribut 'Attribut'.
    
  3. Ausnahme EOFError
    Ein EOFError wird ausgelöst, wenn integrierte Funktionen wie input() eine Dateiendebedingung (EOF) erreichen, ohne Daten zu lesen. Die Dateimethoden wie readline() geben eine leere Zeichenfolge zurück, wenn sie EOF treffen.

    Beispiel:



    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    while True:
        data = input('Enter name : ')
        print ('Hello  ', data)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Name eingeben: Hallo Aditi
    Name eingeben: Traceback (letzter Anruf zuletzt):
      Datei "Ausnahmen_EOFError.py", Zeile 13, in
        data = raw_input ('Name eingeben:')
    EOFError: EOF beim Lesen einer Zeile
    
  4. Ausnahme FloatingPointError
    Ein FloatingPointError wird ausgelöst, wenn eine Gleitkommaoperation fehlschlägt. Diese Ausnahme ist immer definiert, kann jedoch nur ausgelöst werden, wenn Python mit der Option - with-fpectl konfiguriert ist oder das Symbol WANT_SIGFPE_HANDLER in der Datei pyconfig.h definiert ist.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    import math
      
    print (math.exp(1000))
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "", Zeile 1, in
    FloatingPointError: in math_1
    
  5. Ausnahme GeneratorExit
    Diese Ausnahme erbt direkt von BaseException anstelle von Exception, da es sich technisch gesehen nicht um einen Fehler handelt. Eine GeneratorExit-Ausnahme wird ausgelöst, wenn ein Generator oder eine Coroutine geschlossen wird.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    def my_generator():
        try:
            for i in range(5):
                print ('Yielding', i)
                yield i
        except GeneratorExit:
            print ('Exiting early')
      
    g = my_generator()
    print (g.next())
    g.close()
      
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Ausbeute 0
    Früh abreisen
    
  6. Ausnahme ImportError
    Ein ImportError wird ausgelöst, wenn die import-Anweisung ein Modul nicht laden kann oder wenn die "from-Liste" in from ... import einen Namen hat, der nicht gefunden werden kann.

      Beispiel:

      filter_none

      bearbeiten
      schließen

      play_arrow

      Link
      Helligkeit_4
      Code

      import module_does_not_exist
      chevron_right
      
      
      filter_none
      
      

      Ausgabe :



    Traceback (letzter Anruf zuletzt):
      Datei "Ausnahmen_ImportError_nomodule.py", Zeile 12, in
        import module_does_not_exist
    ImportError: Kein Modul mit dem Namen module_does_not_exist vorhanden
    

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    from exceptions import Userexception
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "Ausnahmen_ImportError_missingname.py", Zeile 12, in
        aus Ausnahmen importieren Sie Userexception
    ImportError: Name Userexception kann nicht importiert werden
    
  7. Ausnahme ModuleNotFoundError
    Dies ist die Unterklasse von ImportError, die beim Import ausgelöst wird, wenn ein Modul nicht gefunden werden konnte. Es wird auch ausgelöst, wenn None in sys.modules gefunden wird.
  8. Ausnahme IndexError
    Ein IndexError wird ausgelöst, wenn auf eine Sequenz verwiesen wird, die außerhalb des Bereichs liegt.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    array = [ 0, 1, 2 ]
    print (array[3])
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "Ausnahmen_IndexError.py", Zeile 13, in
        Druckarray [3]
    IndexError: Listenindex außerhalb des Bereichs
    
  9. Ausnahme KeyError
    Ein KeyError wird ausgelöst, wenn in der Gruppe der vorhandenen Schlüssel kein Zuordnungsschlüssel gefunden wird.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    array = { 'a':1, 'b':2 }
    print (array['c'])
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "Ausnahmen_KeyError.py", Zeile 13, in
        Druckarray ['c']
    KeyError: 'c'
    
  10. Ausnahme KeyboardInterrupt
    Dieser Fehler wird ausgelöst, wenn der Benutzer die Interrupt-Taste wie Control-C oder Delete drückt.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    try:
        print ('Press Return or Ctrl-C:',)
        ignored = input()
    except Exception, err:
        print ('Caught exception:', err)
    except KeyboardInterrupt, err:
        print ('Caught KeyboardInterrupt')
    else:
        print ('No exception')
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Drücken Sie die Eingabetaste oder Strg-C: ^ CCaught KeyboardInterrupt
    
  11. Ausnahme MemoryError
    Dieser Fehler wird ausgelöst , wenn eine Operation nicht genügend Speicher hat.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    def fact(a):
        factors = []
        for i in range(1, a+1):
            if a%i == 0:
                factors.append(i)
        return factors 
      
    num = 600851475143
    print (fact(num))
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "4af5c316c749aff128df20714536b8f3.py", Zeile 9, in
        Fakt drucken (num)
      Datei "4af5c316c749aff128df20714536b8f3.py", Zeile 3, in der Tat
        für i im Bereich (1, a + 1):
    MemoryError
    
  12. Ausnahme NameError
    Dieser Fehler wird ausgelöst , wenn kein lokaler oder globaler Name gefunden wird. Zum Beispiel ein unqualifizierter Variablenname.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    def func():
        print ans
      
    func()
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "cfba0a5196b05397e0a23b1b5b8c7e19.py", Zeile 4, in
        func()
      Datei "cfba0a5196b05397e0a23b1b5b8c7e19.py", Zeile 2, in func
        print ans
    NameError: Der globale Name 'ans' ist nicht definiert
    
  13. Ausnahme NotImplementedError
    Diese Ausnahme wird von RuntimeError abgeleitet. Abstrakte Methoden in benutzerdefinierten Klassen sollten diese Ausnahme auslösen, wenn die abgeleiteten Klassen die Methode überschreiben.

    Beispiel:



    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    class BaseClass(object):
        
        def __init__(self):
            super(BaseClass, self).__init__()
        def do_something(self):
            
            raise NotImplementedError(self.__class__.__name__ + '.do_something')
      
    class SubClass(BaseClass):
        
        def do_something(self):
            
            print (self.__class__.__name__ + ' doing something!')
      
    SubClass().do_something()
    BaseClass().do_something()
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "b32fc445850cbc23cd2f081ba1c1d60b.py", Zeile 16, in
        BaseClass(). Do_something()
      Datei "b32fc445850cbc23cd2f081ba1c1d60b.py", Zeile 7, in do_something
        Erhöhen Sie NotImplementedError (self .__ class __.__ name__ + '.do_something')
    NotImplementedError: BaseClass.do_something
    
  14. Ausnahme OSError ([arg])
    Die OSError-Ausnahme wird ausgelöst, wenn eine Systemfunktion einen systembezogenen Fehler zurückgibt, einschließlich E / A-Fehlern wie "Datei nicht gefunden" oder "Datenträger voll".

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    def func():
        print (ans)
      
    func()
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "442eccd7535a2704adbe372cb731fc0f.py", Zeile 4, in
        print i, os.ttyname (i)
    OSError: [Errno 25] Unangemessenes ioctl für Gerät
    
  15. Ausnahme OverflowError
    Der OverflowError wird ausgelöst, wenn das Ergebnis einer arithmetischen Operation außerhalb des Bereichs liegt. Ganzzahlen lösen MemoryError anstelle von OverflowError aus. OverflowError wird manchmal für Ganzzahlen ausgelöst, die außerhalb eines erforderlichen Bereichs liegen. Gleitkommaoperationen werden nicht überprüft, da die Behandlung von Gleitkommaausnahmen in C nicht standardisiert ist.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    import sys
      
    print ('Regular integer: (maxint=%s)' % sys.maxint)
    try:
        i = sys.maxint * 3
        print ('No overflow for ', type(i), 'i =', i)
    except OverflowError, err:
        print ('Overflowed at ', i, err)
      
    print()
    print ('Long integer:')
    for i in range(0, 100, 10):
        print ('%2d' % i, 2L ** i)
      
    print()
    print ('Floating point values:')
    try:
        f = 2.0**i
        for i in range(100):
            print (i, f)
            f = f ** 2
    except OverflowError, err:
        print ('Overflowed after ', f, err)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Normale Ganzzahl: (maxint = 9223372036854775807)
    Kein Überlauf für i = 27670116110564327421
    Lange Ganzzahl:
     0 1
    10 1024
    20 1048576
    30 1073741824
    40 1099511627776
    50 1125899906842624
    60 1152921504606846976
    70 1180591620717411303424
    80 1208925819614629174706176
    90 1237940039285380274899124224
    Gleitkommawerte:
    0 1.23794003929e + 27
    1 1,53249554087e + 54
    2 2.34854258277e + 108
    3 5.5156522631e + 216
    Nach 5.5156522631e + 216 übergelaufen (34, 'Numerisches Ergebnis außerhalb des Bereichs')
    
  16. Ausnahme RecursionError
    Der RecursionError wird vom RuntimeError abgeleitet. Diese Ausnahme wird ausgelöst, wenn der Interpreter feststellt, dass die maximale Rekursionstiefe überschritten wird.
  17. Ausnahme ReferenceError
    Der ReferenceError wird ausgelöst, wenn ein schwacher Referenz-Proxy verwendet wird, um nach der Garbage Collection auf ein Attribut des Referenten zuzugreifen.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    import gc
    import weakref
      
    class Foo(object):
      
        def __init__(self, name):
            self.name = name
          
        def __del__(self):
            print ('(Deleting %s)' % self)
      
    obj = Foo('obj')
    p = weakref.proxy(obj)
      
    print ('BEFORE:', p.name)
    obj = None
    print ('AFTER:', p.name)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :



    VORHER: obj
    (Löschen)
    NACH DEM:
    Traceback (letzter Anruf zuletzt):
      Datei "49d0c29d8fe607b862c02f4e1cb6c756.py", Zeile 17, in
        print 'AFTER:', p.name
    ReferenceError: schwach referenziertes Objekt existiert nicht mehr
    
  18. Ausnahme RuntimeError
    Der RuntimeError wird ausgelöst, wenn keine andere Ausnahme gilt. Es wird eine Zeichenfolge zurückgegeben, die angibt, was genau schief gelaufen ist.
  19. Ausnahme StopIteration
    Der StopIteration-Fehler wird durch die integrierte Funktion next() und die __next __() -Methode eines Iterators ausgelöst, um zu signalisieren, dass alle Elemente vom Iterator erzeugt werden.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    Arr = [3, 1, 2]
    i=iter(Arr)
      
    print (i)
    print (i.next())
    print (i.next())
    print (i.next())
    print (i.next())
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    3
    1
    2
    Traceback (letzter Anruf zuletzt):
      Datei "2136fa9a620e14f8436bb60d5395cc5b.py", Zeile 8, in
        print i.next()
    StopIteration
    
  20. Ausnahme SyntaxError
    Der SyntaxError wird ausgelöst, wenn der Parser auf einen Syntaxfehler stößt. Ein Syntaxfehler kann in einer Importanweisung oder beim Aufrufen der integrierten Funktionen exec() oder eval() oder beim Lesen des ersten Skripts oder der Standardeingabe auftreten.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    try:
        print (eval('geeks for geeks'))
    except SyntaxError, err:
        print ('Syntax error %s (%s-%s): %s' % \
            (err.filename, err.lineno, err.offset, err.text))
        print (err)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Syntaxfehler (1-9): Geeks für Geeks
    ungültige Syntax (, Zeile 1)
    
  21. Ausnahme SystemError
    Der SystemError wird ausgelöst, wenn der Interpreter einen internen Fehler findet. Der zugehörige Wert ist eine Zeichenfolge, die angibt, was schief gelaufen ist.
  22. Ausnahme SystemExit
    Der SystemExit wird ausgelöst, wenn die Funktion sys.exit() aufgerufen wird. Ein Aufruf von sys.exit() wird in eine Ausnahme übersetzt, um Bereinigungshandler (schließlich Klauseln von try-Anweisungen) auszuführen und ein Skript zu debuggen, ohne das Risiko einzugehen, die Kontrolle zu verlieren.
  23. Ausnahme TypeError
    TypeError wird ausgelöst, wenn eine Operation oder Funktion auf ein Objekt eines unangemessenen Typs angewendet wird. Diese Ausnahme gibt eine Zeichenfolge zurück, die Details zur Typinkongruenz enthält.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    arr = ('tuple', ) + 'string'
    print (arr)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :



    Traceback (letzter Anruf zuletzt):
      Datei "30238c120c0868eba7e13a06c0b1b1e4.py", Zeile 1, in
        arr = ('tuple',) + 'string'
    TypeError: Kann nur Tupel (nicht "str") mit Tupel verketten
    
  24. Ausnahme UnboundLocalError
    UnboundLocalError ist eine Unterklasse von NameError, die ausgelöst wird, wenn in einer Funktion oder Methode auf eine lokale Variable verwiesen wird, dieser Variablen jedoch kein Wert zugewiesen wurde.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    def global_name_error():
        print (unknown_global_name)
      
    def unbound_local():
        local_val = local_val + 1
        print (local_val)
      
    try:
        global_name_error()
    except NameError, err:
        print ('Global name error:', err)
      
    try:
        unbound_local()
    except UnboundLocalError, err:
        print ('Local name error:', err)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Fehler beim globalen Namen: Der globale Name 'unknown_global_name' ist nicht definiert
    Lokaler Namensfehler: Lokale Variable 'local_val', auf die vor der Zuweisung verwiesen wird
    
  25. Ausnahme UnicodeError
    Diese Ausnahme ist eine Unterklasse von ValueError. UnicodeError wird ausgelöst, wenn ein Unicode-bezogener Codierungs- oder Decodierungsfehler auftritt.
  26. Ausnahme ValueError
    Ein ValueError wird ausgelöst, wenn eine integrierte Operation oder Funktion ein Argument empfängt, das den richtigen Typ, aber einen ungültigen Wert hat.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    print (int('a'))
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "44f00efda935715a3c5468d899080381.py", Zeile 1, in
        print int ('a')
    ValueError: ungültiges Literal für int() mit Basis 10: 'a'
    
  27. Ausnahme ZeroDivisionError
    Ein ZeroDivisionError wird ausgelöst, wenn das zweite Argument einer Divisions- oder Modulo-Operation Null ist. Diese Ausnahme gibt eine Zeichenfolge zurück, die den Typ der Operanden und die Operation angibt.

    Beispiel:

    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    print (1/0)
    chevron_right
    
    
    filter_none
    
    

    Ausgabe :

    Traceback (letzter Anruf zuletzt):
      Datei "c31d9626b41e53d170a78eac7d98cb85.py", Zeile 1, in
        Druck 1/0
    ZeroDivisionError: Ganzzahlige Division oder Modulo durch Null
    

Dieser Artikel wurde von Aditi Gupta verfasst . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel mit Contrib.geeksforgeeks.org schreiben oder Ihren Artikel an Contribute@geeksforgeeks.org senden . Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.

Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten.