2010-01-28 37 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文件上。