Ausnahmen auslösen

Beim Schreiben von Programmen stoßen wir oft auf Situationen, in denen der normale Ablauf der Programmausführung aufgrund bestimmter Bedingungen geändert werden muss. Python bietet uns Mechanismen, um solche Situationen über Ausnahmen zu handhaben. Ausnahmen sind Ereignisse, die den Kontrollfluss eines Programms verändern können. In Python kannst du zu jedem Zeitpunkt in deinem Programm manuell eine Ausnahme mit dem raise-Statement auslösen.
Hier ist ein einfaches Beispiel für die Verwendung des raise-Statements:
x = -1
if x < 0:
    # Eine Ausnahme auslösen, wenn x negativ ist
    raise Exception('x should not be negative')
In diesem Programm wird eine Ausnahme vom Typ Exception mit der Meldung "x should not be negative" ausgelöst, wenn der Wert von x kleiner als 0 ist. Wenn du dieses Programm ausführst, würde es beim raise-Statement anhalten und die Ausnahmemeldung ausgeben, wie zum Beispiel:
Exception: x should not be negative
Neben Exception verfügt Python über mehrere eingebaute Ausnahmen, die du verwenden kannst, um spezifischere Fehlertypen auszulösen. So könntest du zum Beispiel einen ValueError auslösen:
def sqrt(n):
    if n < 0:
        # Einen ValueError auslösen, wenn n negativ ist
        raise ValueError('Quadratwurzel für negative Zahlen nicht definiert')
    return n ** 0.5

print(sqrt(4))    # 2.0
print(sqrt(-1))   # ValueError: Square root not defined for negative numbers
In diesem Beispiel versucht die Funktion sqrt(n), die Quadratwurzel der Zahl n zu berechnen. Wenn jedoch n negativ ist, wird ein ValueError mit einer spezifischen Nachricht ausgelöst.
Beachte, dass der Programmablauf unterbrochen wird, wenn du eine Ausnahme auslöst. Dies ist oft ein gewünschtes Verhalten, da es dir ermöglicht zu signalisieren, dass etwas Unerwartetes passiert ist, mit dem das Programm nicht umgehen kann. Der spezifische Ausnahmetyp und die Nachricht liefern weitere Informationen über die Art des Fehlers.

Herausforderung: Datei-Leser

In einer großen Softwarefirma gibt es mehrere Code-Dateien in einem Verzeichnis. Du sollst eine Python-Funktion schreiben, die eine Datei öffnet und deren Inhalt zurückgibt. Sie sollte aber auch in der Lage sein, Fälle zu behandeln, in denen eine Datei nicht existiert.
Die Eingabe für die Funktion ist der Dateiname.
Die Funktion sollte den Inhalt der Datei lesen und zurückgeben. Falls die Datei nicht existiert, sollte sie einen FileNotFoundError auslösen.
Eingabe
Ausgabe
existing_file.txt
Hello World
nonexistingfile.txt
File does not exist
 

Constraints

Time limit: 1 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue