异常错误无法打印

时间:2016-02-13 10:36:05

标签: python list

嗨,我写了一个同义词库函数,我试图让它引发异常,这是一个例子,我希望它能引发异常。

     #Extract from thesaurus function
     if words.count(value) > 1:
            raise Exception("Word appears twice")

这是现在函数的最后一行,我用一个try语句来打开包含单词的文件。

    try:
        file = open("thesaurus.txt", "r")
        words = file.readlines()
        Thesaurus(words)
        print("Successful")
    except LookupError as exceptObj:
            print("Error:", str(exceptObj))

所有应该抛出异常的语句(我将函数外部的代码作为独立代码进行了测试并且有效)但是作为一个函数,它会引发异常加上它不应该打印成功,任何想法?< / p>

2 个答案:

答案 0 :(得分:2)

Thesaurus方法(Exception)抛出的异常比except块(LookupError)中捕获的异常更常见。所以它不会被处理。

更改

raise Exception("Word appears twice")

raise LookupError("Word appears twice")

答案 1 :(得分:0)

您正在抛出某种类型的异常并捕获另一种类型。你需要抛出并捕获相同的类型。

您可以更改行

raise Exception("Word appears twice")

raise LookupError("Word appears twice")

或更改行

except LookupError as exceptObj

except Exception as exceptObj