Behandlung von Python-Ausnahmen (Python-Lernnotiz ⑥)

Ausnahmen behandeln

Punkt

import sys

try:
    f = open('myfile.txt')
    s = f.readline()
except OSError as err:
    print("OS error: {0}".format(err))
except ValueError:
    print("Die Daten können nicht in eine Ganzzahl konvertiert werden.")
except:
    print("unerwarteter Fehler: ", sys.exc_info()[0])
    raise #Wirf die Ausnahme erneut, damit der Anrufer sie abfangen kann

Fangen Sie mehrere Arten von Ausnahmen ab


except(RuntimeError, TypeError, NameError):
    pass

Else-Klausel hinzugefügt


import sys

try:
    f = open('myfile.txt')
    s = f.readline()
except OSError as err:
    print("OS error: {0}".format(err))
except ValueError:
    print("Die Daten können nicht in eine Ganzzahl konvertiert werden.")
except:
    print("unerwarteter Fehler: ", sys.exc_info()[0])
    raise #Wirf die Ausnahme erneut, damit der Anrufer sie abfangen kann
else:
    print(s)
    f.close()

Eine Ausnahme machen

Punkt

Definieren Sie eine Ausnahme

Punkt

Ausnahmeklasse



class MyError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return repr(self.value)
    
try:
    raise MyError(2*2)
except MyError as e:
    print('My exception occurred, value:', e.value)
#Ausgabe
# My exception occurred, value: 4

raise MyError('oops!')
#Ausgabe
# Traceback (most recent call last):
#   File ".\exception_class.py", line 12, in <module>
#     raise MyError('oops!')
# __main__.MyError: 'oops!'

Bereinigungsprozess mit try-finally

Punkt

endlich Beispiel



def divide(x, y):
    try:
        result = x / y
    except ZeroDivisionError:
        print("Nullteilungsfehler")
    else:
        print('Antworten: ', result)
    finally:
        print('in finally')

divide(2, 1)
#Antworten:  2.0
# in finally

divide(2, 0)
#Nullteilungsfehler
# in finally

divide("2", "1")
# in finally
# Traceback (most recent call last):
#   File ".\divide.py", line 15, in <module>
#     divide("2", "1")
#   File ".\divide.py", line 3, in divide
#     result = x / y
# TypeError: unsupported operand type(s) for /: 'str' and 'str'

Aufräumvorgang mit mit

Punkt

with open('workfile', 'r') as f:
    read_data = f.read()

print(f.closed)
# True

Recommended Posts

Behandlung von Python-Ausnahmen (Python-Lernnotiz ⑥)
Behandlung von Python-Ausnahmen
Behandlung von Python-Ausnahmen
Python-Klasse (Python-Lernnotiz ⑦)
Python-Modul (Python-Lernnotiz ④)
Python, über die Ausnahmebehandlung
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Ausnahmebehandlung
Python lernen
Python-Memo
Python-Memo
Python-Steuerungssyntax, Funktionen (Python-Lernnotiz ②)
Eingabe / Ausgabe mit Python (Python-Lernnotiz ⑤)
Ausnahmebehandlung während der Python-API-Kommunikation
Abschnittsplanung Lernnotiz ~ von Python ~
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
LPIC201 Studiennotiz
[Python] Lernnotiz 1
Python-Anfänger-Memo (9.2-10)
Python-Lernnotizen
Python-Zahlen, Zeichenfolgen, Listentypen (Python-Lernnotiz ①)
[Lernnotiz] Grundlagen des Unterrichts mit Python
Django Lernnotiz
Python-Anfänger-Memo (9.1)
Python-Lernausgabe
Python-Lernseite
Python-Fehlerbehandlung
[Einführung in die Udemy Python3 + -Anwendung] 65. Ausnahmebehandlung
★ Memo ★ Python Iroha
Python-Lerntag 4
Ein Forscher eines Pharmaunternehmens fasste die Ausnahmebehandlung von Python zusammen
boto3 Ausnahmebehandlung
Struktur und Betrieb der Python-Daten (Python-Lernnotiz ③)
[Python] EDA-Memo
Python Deep Learning
Python 3-Operator-Memo
Python-Lernen (Ergänzung)
Deep Learning × Python
Python-Zeitzonenbehandlung
[Memo] Maschinelles Lernen
[Mein Memo] Python
Python-Standardbibliothek: zweite Hälfte (Python-Lernnotiz ⑨)
Python3-Metaklassen-Memo
Python-Ausnahmebehandlung etwas bequemer
[Python] Grundkarten-Memo
Python & Machine Learning Study Memo ③: Neuronales Netz
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
Modulimport und Ausnahmebehandlung in Python
Python-Anfänger-Memo (2)
Python & Machine Learning Study Memo ⑥: Zahlenerkennung
Python-Lernnotizen
[Python] Numpy Memo
Python-Standardbibliothek: Erste Hälfte (Python-Lernnotiz ⑧)
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek