finally中的SyntaxError(Django)

时间:2009-05-04 16:20:23

标签: python django

我正在使用Django,我有以下错误:

  

异常类型:SyntaxError   例外值:语法无效(views.py,第115行

我的viws.py代码如下所示:

def myview(request):
try:
    [...]
except MyExceptionClass, e:
    [...]
finally:
    render_to_response('template.html', {}, context_instance = RequestContext(request))

其中MyExceptionClass是扩展Exception的类,第115行是'finally'子句行。如果我删除finally子句,(第115-116行),工作正常。有什么想法吗?

非常感谢!

3 个答案:

答案 0 :(得分:14)

你使用的是什么版本的python?在2.5之前,您不能在同一个try块中同时包含except子句和finally子句。

你可以通过嵌套试块来解决这个问题。

def myview(request):
    try:
        try:
            [...]
        except MyExceptionClass, e:
            [...]
    finally:
        render_to_response(
            'template.html', {}, context_instance = RequestContext(request)
        )

答案 1 :(得分:2)

Nadia是对的,所以如果您遇到Python 2.4或更早版本,请使用两个试用块:

try:
  try:
        [...]
  except MyExceptionClass, e:
        [...]
finally:
        render_to_response(...)

答案 2 :(得分:0)

在Python 3中,应该是:

except MyExceptionClass as e:
    [....]

在你的情况下,情况并非如此。