所以我开发了一个程序,为了好玩,它告诉我有多少次我和另一个人同时玩了一个特定的游戏。可以找到聊天记录(我从中提取用户名)的三个单独目录。我让程序变得多样化,可以在其他人的机器上工作,这意味着他们必须手动输入所有3个区域的目录。这就是我的问题所在:如果两次引发(并处理)OSError会发生什么?
目前,当我测试程序时,我为3中的第一个输入了一个无效路径,程序会打印一条消息告诉我它无效(因此OSError已被处理);但是,当我对3个路径中的第2个路径执行相同操作时,不会打印消息。不过,我不知道为什么。实际上,我不确定我是否测试了3条路径中的第1条路径连续输入两条无效路径以查看它是否每次都打印消息,但我认为我测试了它并且确实如此。对于所有3个选项,无论已经提出多少次,我有什么方法可以确保始终打印消息?
编辑:刚刚意识到我摆脱了" OSError"我的除外陈述的一部分(但我不认为 太对这个问题很重要?),忘了提及,如果它有用,我和我#39; m在Windows 7 PC上
我的代码(有用的部分):
while True:
try:
SteamDirec = raw_input("Please enter the directory for steam KAG logs (ends in \Logs).\nEnter 'none' if you do not have steam KAG: ")
if SteamDirec.lower() == 'none':
break
else:
#SteamKAG(SteamDirec) commented out, not useful here
break
except:
print "\nInvalid directory. Ensure the directory is correct and try again.\n"
while True:
try:
NonSteamDirec = raw_input("\nPlease enter the directory for non-steam KAG (release) logs (ends in \Logs).\nEnter 'none' if you do not have non-steam KAG (release): ")
if NonSteamDirec.lower() == 'none':
break
else:
#NonSteamKAG(NonSteamDirec) commented out, not useful here
break
except:
print "\nInvalid directory. Ensure the directory is correct and try again.\n"
while True:
try:
ClassicDirec = raw_input("\nPlease enter the directory for Classic KAG logs (ends in \Logs).\nEnter 'none' if you do not have Classic KAG: ")
if ClassicDirec.lower() == 'none':
break
else:
#ClassicKAG(ClassicDirec) commented out, not useful here
break
except:
print "\nInvalid directory. Ensure the directory is correct and try again.\n"