2016-02-13 98 views
1

嗨,我写了一个同义词库函数,我试图让它引发一个异常,这是一个提取作为例子,我想它引发一个异常。异常错误不打印

 #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)) 

所有这一切应该抛出一个异常(我测试的功能以外的代码作为一个独立的代码和它的工作),但作为一个功能,除了它提高再加上它打印成功时,它不应该的发言,有任何想法吗?

回答

2

Thesaurus法(Exception)抛出的异常是比你在except块(LookupError)捕捉一个更普遍。所以它不会被处理。

变化

raise Exception("Word appears twice") 

raise LookupError("Word appears twice") 
+0

试过了,它仍然没有工作:( –

+0

您能否通过发布更多(相关)代码来阐明问题的更多信息,以便您的情况可以完全按照原样进行复制? –

0

你抛出一些类型的异常和捕获另一种类型。你需要抛出并捕获相同的类型。

要么你改变线路

raise Exception("Word appears twice") 

raise LookupError("Word appears twice") 

或更改线路

except LookupError as exceptObj 

except Exception as exceptObj