Синтаксическая ошибка в окончании (Django) - PullRequest
4 голосов
/ 04 мая 2009

Я использую 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, а line 115 - строка предложения finally. Если я удаляю предложение finally (строки 115-116), все работает нормально. Есть идеи?

Большое спасибо!

Ответы [ 3 ]

14 голосов
/ 04 мая 2009

Какую версию python вы используете? До версии 2.5 в одном и том же блоке try не может быть и предложения, и исключения, и предложения finally.

Вы можете обойти это, вложив блоки try.

def myview(request):
    try:
        try:
            [...]
        except MyExceptionClass, e:
            [...]
    finally:
        render_to_response(
            'template.html', {}, context_instance = RequestContext(request)
        )
2 голосов
/ 04 мая 2009

Надя права, поэтому, если вы застряли с Python 2.4 или более ранней, используйте два блока try:

try:
  try:
        [...]
  except MyExceptionClass, e:
        [...]
finally:
        render_to_response(...)
0 голосов
/ 04 мая 2009

В Python 3 должно быть:

except MyExceptionClass as e:
    [....]

В вашем случае это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...