-1

Bonjour, je suis novice en programmation python. Je suis auto-apprentissage en faisant un projet.Comment intercepter l'erreur et arrêter d'utiliser l'instruction IF et ELSE?

le code ci-dessous fonctionne bien, mais je veux attraper l'exception si la condition est FAUX. J'ai déjà une déclaration à imprimer si le répertoire n'est pas là; et continue. Je sais que je peux faire fonctionner ce code en imbriquant l'instruction if.

mais je ne veux pas faire. Je veux passer à la ligne de code suivante. quand je lance ceci tel quel, j'obtiendrai une erreur si le répertoire est manquant.

import os 
goToDir = open("URPsetup.dat","r") 
goToDirPath = goToDir.read() 

if (os.path.exists(goToDirPath))== True: 
os.chdir(goToDirPath) 
else: print("directory not found, please check file URPsetup.dat") 

goToConfig = open("utility.dat", "r") 
print(goToConfig.read()) 

Je reçois ce message d'erreur lorsque le répertoire n'existe pas. Ce que je veux dire ici, c'est que le répertoire fourni dans "URPsetup.dat" était incorrect. Je l'ai fait exprès pour voir si le code s'arrêtera à l'instruction else ci-dessus. il imprimera l'instruction else et continuera pour afficher le message d'erreur ci-dessous. comment puis-je attraper cette erreur et arrêter?

directory not found, please check file URPsetup.dat 
Traceback (most recent call last): 
File "C:/Users/R82436/PycharmProjects/URP2017/prototype.py", line 9, in  <module> 
goToConfig = open("utility.dat", "r") 
FileNotFoundError: [Errno 2] No such file or directory: 'utility.dat' 
directory not found, please check file URPsetup.dat 

Process finished with exit code 1 
+0

Si le fichier n'existe pas, comment voulez-vous "continuer"? – AetherUnbound

+0

Juste montrer le message que le répertoire est faux. J'ai fourni un répertoire incorrect à dessein. Si j'ai fourni un répertoire correct cela fonctionnera – Dean

+0

Vous dites "j'obtiendrai une erreur", mais vous ne dites pas quelle erreur, ou quelle partie de votre code est la cause. Veuillez modifier la question pour fournir le retraçage complet de toute exception que vous recevez. Il va identifier ce qui ne va pas et peut-être alors nous pouvons vous aider. Sans cette information, nous ne pouvons que deviner quel est le problème que vous rencontrez. – Blckknght

Répondre

-2

Je suppose que vous cherchez ceci:

import sys 
. 
. 
else: 
    print("directory not found, please check file URPsetup.dat") 
    sys.exit() 
. 
. 

OU cela va faire très bien aussi:

# No need to import sys 
. 
. 
else: 
    print("directory not found, please check file URPsetup.dat") 
    raise SystemExit(0) 
. 
. 

Cela fera l'affaire;)

Et essayez d'expliquer votre problème correctement la prochaine fois, vous n'êtes pas complètement clair sur ce que c'est exactement que vous voulez faire.

+0

a travaillé à merveille! merci – Dean

+0

J'ai aussi trouvé quelque chose d'autre: Au lieu d'utiliser import sys, vous pouvez aussi utiliser raise SystemExit (0) –