2010-01-28 38 views
1

在我的Google Appengine應用程序中,我在模塊'gvu'中定義了一個自定義異常InvalidUrlException(Exception)。某處在我的代碼我做的:Google Appengine和Python異常

try: 
    results = gvu.article_parser.parse(source_url) 
except gvu.InvalidUrlException as e: 
    self.redirect('/home?message='+str(e)) 
... 

這在當地GAE開發服務器工作正常,但引發

<type 'exceptions.SyntaxError'>: invalid syntax (translator.py, line 18) 

當我把它上傳。 (第18行是以'except'開頭的行)

這個問題似乎來自'as e'部分:如果我刪除它,我不會再有這個異常。不過,我希望能夠訪問引發的異常。你有沒有遇到過這個問題?有沒有其他語法?

回答

5

您的服務器上可能有較舊的Python版本。 except ExceptionType as varname:是一種較新的語法。以前您只需使用逗號:except ExceptionType, varname:

+0

非常感謝!就是這樣。 – Jim 2010-01-28 01:18:28

0

僅供參考,另一個可能的原因這個錯誤 - 尤其是如果所引用的行是腳本(如2號線)早期是結束Unix和Windows之間的差異線。

我在Cygwin shell上在Windows上運行Python,並得到了這個錯誤,真的很困惑。在編輯之前,我已經用「touch」創建了這個文件。

我將該文件重命名爲臨時文件名,並將另一個文件(我從Unix服務器下載的文件)複製到原始文件名上,然後通過臨時文件恢復內容,並解決了問題。相同的文件內容(無論如何都在屏幕上),唯一不同的是文件最初創建的位置。

只是想張貼此萬一有人碰到這個錯誤別人跑了,並進行類似疑惑。

2

我得到相同的錯誤,因爲我正在使用pydoc命令而不是pydoc3命令在使用python3打印語句(帶圓括號的打印語句)的python3文件上。