Python Ausnahmebehandlung # zu Affen lernen


 

 

### Was ist nicht normal?

> Sehr einfach zu verstehen, nicht richtig funktioniert, entsprach nicht den Erwartungen.

> Ausnahme ist ein Ereignis, und das anormale Ereignis tritt während des Betriebes unserer Programmierer unsere normale Programmausführung beeinflussen.

Abnormalitäten auf zwei Arten:

    1. Syntaxfehler, verursacht durch eine anormale

    2. Logische Fehler durch Anomalien verursacht

### Wie Ausnahmen zu behandeln?

1. Wenn ein Fehler auftritt, ist vorhersehbar, dann können Sie die Prozesssteuerung vorbeugende Behandlung verwenden

`` `Python

# Zum Beispiel: zwei digitale Operationen, von denen keine Zahlen sind, werden die Betreiber falsch sein. Dann können Sie gehen, um zu bestimmen Prävention

n2 = 3

wenn isinstance (n2, int):

    res = 10 + n2

    Drucken (res)

`` `

2. Wenn ein Fehler unvorhersehbar Bedingungen auftritt, können Sie versuchen, verwenden. . . auszunehmen. . Verarbeitet, wenn ein Fehler auftritt

`` `Python

'' ‚Syntax:

Versuchen:

    Die Ausnahmefehlercodes, die auftreten können,

außer:

    Wenn eine Ausnahme auftritt, außer weiter zu Prozessblock

‚‘‘

# Annahme, dass Datei liest nicht existiert, wird ein Fehler auftritt, können Sie zwei Methoden zur Verarbeitung verwenden,

# 1. Bevor die Datei gelesen werden kann, um zu bestimmen, ob die aktuelle Datei vorhanden ist

# 2. Sie können auch versuchen verwenden. . . auszunehmen. . Verarbeitet, wenn ein Fehler auftritt

Versuchen:

    mit offenem ( './ user.txt', 'r') als fp:

        res = fp.read ()

    Drucken (res)

außer:

    drucken ( ‚Datei existiert nicht‘)

drucken ( ‚Programm fortzusetzen ...‘)

`` `

** Hinweis: versuchen. . auszunehmen. . Das Verfahren wird durchgeführt, nachdem der Fehler aufgetreten ist. Und wenn es ein fundamentaler Unterschied. **

### Versuchen. . . auszunehmen. . detaillierte Nutzungs

`` `Python

# Versuch. . ausnehmen detaillierte Nutzungs

# 1. Verwenden Sie versuchen. . AUSSER bestimmte Ausnahmeverarbeitung. Wenn eine nicht-spezifizierte Ausnahme ausgelöst, können Sie nicht Griff

Versuchen:

    s1 = 'Hallo'

    int (s1) # wirft Valueerror

ausnehmen als e Valueerror:

# Mit Ausnahme Indexerror als e: # Wenn eine nicht spezifizierte Ausnahme ausgelöst, können Sie nicht Griff

    print (e)

# 2. Multi-Zweigverarbeitungsausnahmeklasse. Verschiedene Ausnahme außer Verarbeitung gehen

s1 = 'Hallo'

Versuchen:

    # Int (s1) # Valueerror

    s1 [5] # Indexerror

ausnehmen als Indexerror e:

    PRINT ( 'Indexerror', e)

ausnehmen KeyError als e:

    PRINT ( 'KeyError', e)

ausnehmen als e Valueerror:

    PRINT ( 'Valueerror', e)

# 3. Allgemeine Ausnahmeklassen Ausnahme

s1 = 'Welt'

Versuchen:

    int (s1)

ausnehmen Ausnahme als e:

    drucken ( 'Exception ===', e)

# 4 + mehrfach verzweigten allgemeinen Ausnahmeklasse Ausnahmeklasse. Nachdem diese eine Ausnahme ausgelöst wird folgen eine entsprechende Reihenfolge von der Ausnahmeklasse nach unten auszuführen.

s1 = 'Hallo'

Versuchen:

    # Int (s1) # Valueerror

    s1 [5] # Indexerror

ausnehmen als Indexerror e:

    PRINT ( 'Indexerror', e)

ausnehmen KeyError als e:

    PRINT ( 'KeyError', e)

ausnehmen als e Valueerror:

    PRINT ( 'Valueerror', e)

ausnehmen Ausnahme als e:

    PRINT ( 'Exception', e)

# 5. try ... außer ... else ...

s1 = 'Hallo'

Versuchen:

    str (S1)

ausnehmen als Indexerror e:

    PRINT ( 'Indexerror', e)

ausnehmen als e Valueerror:

    PRINT ( 'Valueerror', e)

ausnehmen Ausnahme als e:

    PRINT ( 'Exception', e)

sonst:

    drucken ( ‚wenn der try-Block ohne Auslösen einer Ausnahme, Ausführung‘)

# 6.try ... except..else..finally

# Schließlich, ob eine Ausnahme ausgelöst wird, wird es ausgeführt. Oft verwendet, um einige Bereinigung durchzuführen.

s1 = 'Hallo'

Versuchen:

    int (s1)

    ( ‚Vorherigen Code, wenn eine Ausnahme ausgelöst wird, wird der Block nicht weiter ..‘) drucken

ausnehmen als Indexerror e:

    PRINT ( 'Indexerror', e)

ausnehmen als e Valueerror:

    PRINT ( 'Valueerror', e)

ausnehmen Ausnahme als e:

    PRINT ( 'Exception', e)

sonst:

    drucken ( ‚wenn der try-Block ohne Auslösen einer Ausnahme, Ausführung‘)

schließlich:

    PRINT ( ‚unabhängig davon, ob eine Ausnahme ist, wird dieser Codeblock ausgeführt werden‘)

PRINT ( ‚Code, wenn die obige Verarbeitung und führt eine abnormal, dann die Codeausführung weiter hinter‘)

# 7. Verwenden Sie erhöhen, die Initiative ergreifen, eine Ausnahme zu werfen

Versuchen:

    # Sie können die Initiative verwenden, um raise eine Ausnahme auslöst, und die Ausnahme Informationssatz

    Erhöhung Exception ( 'Fehler')

ausnehmen Ausnahme als e:

    PRINT ( 'Exception', e)

# 8. Assertion Assertion

assert 1 == 1 #, wenn dieser Ausdruck ist richtig, nichts tun

assert 2 == 1 # Wenn die Fehler hinter dem Ausdruck, direkt geworfen AssertionError

`` `

Benutzerdefinierte Exception-Handler-Klasse ###

> Wenn eine Ausnahme auftritt, werden die abnormalen Informationen in das Protokoll geschrieben.

##### Zurückverfolgungsmodul zurück https://docs.python.org/3.7/library/traceback.html

##### Logging-Modul Protokolle https://docs.python.org/3.7/library/logging.html

`` `Python

# Log individuelle Ausnahmebehandlung Klassen

Klasse MyException ():

    def __init __ (self):

        Import Zurückverfolgungs

        Import Protokollierung

        Die Grundkonfiguration # Protokollierung

        logging.basicConfig (

            filename = ‚/ error.log‘, # Protokollspeicher-Dateien und Verzeichnisse

            format = '% (asctime) s% (levelname) s \ n% (message) s', # Format in Protokollformat gespeichert

            DateFmt = '% Y-% m-% d% H:% M:% S'

        )

        # Schreiben log

        logging.error (traceback.format_exc ())

# Klasse mit einem benutzerdefinierten Exception-Handler

Versuchen:

    int ( 'BB')

außer:

    drucken ( "hier in Ausnahmebehandlung)

    MyException () # Codeblock Anruf Ausnahme benutzerdefinierte Ausnahmeklasse Handhabung

`` `

### Standard-Exception-Klassen

| Exception Name | Beschreibung |

| : -----------------------: | : ------------------------------------------------: |

| BaseException | Basisklasse für alle Ausnahmen |

| Systemexit | Dolmetscher Ausgang angefordert |

| KeyboardInterrupt | Anwender-Interrupt Ausführen (in der Regel geben Sie ^ C) |

| Exception | Allgemeiner Fehler Basisklasse |

| StopIteration | Iterator nicht mehr Wert |

| GeneratorExit | Ausnahmen die Benachrichtigung Generator (Generator) zurückzuziehen auftritt |

| Standarderror | alle integrierten Standardbasisklasse für Ausnahmen |

| ArithmeticError | alle Basisklasse numerische Fehler |

| FloatingPointError | Gleitkommazahlen Berechnungsfehler |

| OverflowError | numerische Operation überschreitet die Höchstgrenze |

| Die Zerodivisionerror | Addition (oder Modul) von Null (alle Datentypen) |

| AssertionError | Assertionsfehler |

| Attribute | Objekt nicht diese Eigenschaft |

| EOFError | kein Einbau-Eingang, die EOF-Markierung erreichen |

| EnvironmentError | Betriebssystemfehler Basisklasse |

| IOError | Ein- / Ausgabeoperationen zum Scheitern verurteilt |

| OSError | Betriebssystemfehler |

| WindowsError | Systemaufruf fehlschlägt |

| Import | Import-Modul / Objekt ist fehlgeschlagen |

| LookupError | Basisklasse für ungültige Datenabfragen |

| Indexerror | Folge ohne diesen Index (Index) |

| KeyError | Karte nicht über diesen Schlüssel |

| Memory | Speicherüberlauf-Fehler (für Python-Interpreter ist nicht tödlich) |

| Nameerror | undeclared / initialize Objekte (keine Attribute) |

| UnboundLocalError | Zugang nicht initialisierte lokale Variable |

| Reference | schwache Referenz (Weak reference) versucht das Objekt zuzugreifen Speicherbereinigungs gewesen |

| Runtime | allgemeiner Laufzeitfehler |

| NotImplementedError | unrealisierte-Methode |

| Syntax | Python Syntaxfehler |

| IndentationError | Einbuchtung Fehler |

| TabError | Tab und Räume mischen |

| Systemerror | allgemeine Erklärung des Systemfehlers |

| Typeerror | ungültig für die Art der Operation |

| Valueerror | bestanden ungültige Parameter |

| UnicodeError | Unicode Fehler |

| UnicodeDecodeError | wenn Unicode Fehler Decodierung |

| UnicodeEncodeError | wenn Unicode Fehler kodiert |

| UnicodeTranslateError | wenn Unicode-Konvertierung Fehler |

| Achtung | Warnung Basisklasse |

| DeprecationWarning | über veraltetes Feature Warnung |

| FutureWarning | Über semantische Struktur der Zukunft Warnung ändern |

| Überlaufwarnung | alt automatisch auf eine lange ganze Zahl gefördert (lang) Warnung |

| PendingDeprecationWarning | über Funktionen Warnung aufgegeben werden |

| RuntimeWarning | verdächtige Laufzeitverhalten (Laufzeitverhalten) Warnung |

| SyntaxWarning | suspekt Grammatik Warnung |

| UserWarning | Benutzercode erzeugt Warnung |

 

Mastery Lernmethode wird als beugen zu überholen!

Lernen zu Affen: die Leistungen ihrer eigenen nur ein Boutique!

Ich denke du magst

Origin www.cnblogs.com/itxdl/p/12522577.html
Empfohlen
Rangfolge