嗨,我写了一个同义词库函数,我试图让它引发异常,这是一个例子,我希望它能引发异常。
#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>
答案 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