可以在Python脚本中引发/处理异常两次(2.7.8)

时间:2015-01-23 10:21:59

标签: python-2.7 exception exception-handling

所以我开发了一个程序,为了好玩,它告诉我有多少次我和另一个人同时玩了一个特定的游戏。可以找到聊天记录(我从中提取用户名)的三个单独目录。我让程序变得多样化,可以在其他人的机器上工作,这意味着他们必须手动输入所有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"

0 个答案:

没有答案