Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Ausnahmewartung


Beim Programmieren passieren Fehler. Das ist einfach ein Teil des Lebens. Vielleicht hat der Benutzer falsche Eingaben gemacht. Vielleicht war eine Netzwerkressource nicht verfügbar. Vielleicht ging dem Programm der Arbeitsspeicher aus. Oder der Programmierer hat vielleicht sogar einen Fehler gemacht!

Pythons Lösung für Fehler sind Ausnahmen. Möglicherweise haben Sie schon einmal eine Ausnahme gesehen.

print(a)

#Fehler
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

Ups! Vergessen, der Variablen 'a' einen Wert zuzuweisen.

Aber manchmal möchte man nicht, dass Ausnahmen das Programm vollständig stoppen. Vielleicht möchte man etwas Besonderes tun, wenn eine Ausnahme ausgelöst wird. Dies geschieht in einem try/except-Block.

Hier ist ein triviales Beispiel: Angenommen, Sie iterieren über eine Liste. Sie müssen über 20 Zahlen iterieren, aber die Liste stammt aus Benutzereingaben und könnte nicht 20 Zahlen enthalten. Nachdem Sie das Ende der Liste erreicht haben, sollen die restlichen Zahlen einfach als 0 interpretiert werden. Hier ist, wie Sie das machen könnten:

def do_stuff_with_number(n):
    print(n)

def catch_this():
    the_list = (1, 2, 3, 4, 5)

    for i in range(20):
        try:
            do_stuff_with_number(the_list[i])
        except IndexError: # Ausgelöst, wenn auf einen nicht existierenden Index einer Liste zugegriffen wird
            do_stuff_with_number(0)

catch_this()

Da war nichts allzu kompliziert! Sie können das mit jeder Ausnahme machen. Für weitere Details zur Behandlung von Ausnahmen schauen Sie sich die Python-Dokumentation an.

Übung

Behandeln Sie alle Ausnahmen! Denken Sie an die vorherigen Lektionen zurück, um den Nachnamen des Schauspielers zurückzugeben.

# Setup actor = {"name": "John Cleese", "rank": "awesome"} # Function to modify!!! def get_last_name(): return actor["last_name"] # Test code get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) actor = {"name": "John Cleese", "rank": "awesome"} def get_last_name(): return actor["name"].split()[1] get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) test_output_contains("Cleese") test_output_contains("All exceptions caught! Good job!") test_output_contains("The actor's last name is Cleese") success_msg("Great work!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy