2011-10-11 25 views
2

我知道這些問題中有很多存在,但我似乎無法找到一個適用於我遇到的問題。NameError:全局名稱'AlreadyExists'沒有被定義使用try /除了函數內

我有以下幾點:

def function(): 
    try: 
    # function to create a table on hbase 
    except AlreadyExists, ae: 
    print "WARN: " + ae.message 

,當我把它從另一個Python腳本它給了我

NameError: global name 'AlreadyExists' is not defined 

...但如果我刪除def function()和自身運行它,它的工作原理並不會抱怨全球名稱。

我試過把global AlreadyExists,並沒有工作。我也看了這similar problem,但我不知道如何應用它,因爲它自己的工作(沒有我不得不導入任何具體的東西,但只要我把它包裝在一個函數失敗)。

有什麼建議嗎?

+0

你進口AlreadyExists? –

回答

2

Python只會在引發異常時嘗試訪問名稱。當你在代碼之外運行代碼時,它可能不會拋出異常,這就是你認爲它工作的原因。

您需要從任何地方導入AlreadyExists異常。

+0

哦好吧..有意義..我認爲錯誤代碼是由應用程序拋出,我正在捕捉名稱(有點像打印錯誤的名稱)..沒有意識到我不得不導入我想要的錯誤抓住。謝謝! – Lostsoul

相關問題