Django中的finally语句语法错误
我在使用Django的时候遇到了一个错误:
错误类型: 语法错误 错误信息: 语法无效 (views.py, 第115行)
我的views.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
在Python 3中,应该是:
except MyExceptionClass as e:
[....]
在你的情况下,这并不是这样。
2
Nadia说得对,如果你还在用Python 2.4或者更早的版本,那就需要用两个尝试块(try blocks):
try:
try:
[...]
except MyExceptionClass, e:
[...]
finally:
render_to_response(...)
14
你正在使用哪个版本的Python?在2.5之前,你不能在同一个try块里同时使用except和finally这两个部分。
你可以通过把try块嵌套起来来解决这个问题。
def myview(request):
try:
try:
[...]
except MyExceptionClass, e:
[...]
finally:
render_to_response(
'template.html', {}, context_instance = RequestContext(request)
)