Lever des Exceptions

Lors de l'écriture de programmes, nous rencontrons souvent des situations où le flux normal d'exécution doit être modifié en raison de certaines conditions. Python nous fournit des mécanismes pour gérer de telles situations via les exceptions. Les exceptions sont des événements qui peuvent modifier le flux de contrôle d'un programme. En Python, vous pouvez déclencher manuellement une exception à n'importe quel moment dans votre programme en utilisant l'instruction raise.
Voici un simple exemple d'utilisation de l'instruction raise :
x = -1
if x < 0:
    # lever une exception si x est négatif
    raise Exception('x ne devrait pas être négatif')
Dans ce programme, si la valeur de x est inférieure à 0, une exception de type Exception est levée avec le message "x ne devrait pas être négatif". Si vous exécutez ce programme, il s'arrêtera à l'instruction raise et affichera le message d'exception, comme ceci :
Exception: x should not be negative
En plus de Exception, Python est livré avec plusieurs exceptions intégrées que vous pouvez utiliser pour lever des types d'erreurs plus spécifiques. Voici comment vous pourriez lever une ValueError :
def sqrt(n):
    if n < 0:
        # lever une ValueError si n est négatif
        raise ValueError('La racine carrée n\'est pas définie pour les nombres négatifs')
    return n ** 0.5

print(sqrt(4))    # 2.0
print(sqrt(-1))   # ValueError: Square root not defined for negative numbers
Dans cet exemple, la fonction sqrt(n) tente de calculer la racine carrée du nombre n. Cependant, si n est négatif, elle lève une ValueError avec un message spécifique.
Notez que lorsque vous levez une exception avec raise, le flux du programme est interrompu. C'est souvent un comportement souhaitable, car cela vous permet de signaler qu'un événement inattendu s'est produit que le programme ne peut pas gérer. Le type d'exception spécifique et le message fournissent plus d'informations sur la nature de l'erreur.

Challenge : Lecteur de Fichier

Dans une grande entreprise de logiciels, il y a plusieurs fichiers de code dans un répertoire. On vous demande d'écrire une fonction Python qui ouvre un fichier et retourne son contenu. Mais elle doit également pouvoir gérer les cas où un fichier n'existe pas.
L'entrée de la fonction est le nom du fichier.
La fonction doit lire et retourner le contenu du fichier. Dans le cas où le fichier n'existe pas, elle doit lever une FileNotFoundError.
Entrée
Sortie
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