Похоже, я еще не совсем знаком с обработкой исключений. Я в недоумении :(
Следующий код иногда возвращает эту ошибку:
File "applications/pingback/modules/plugin_h_pingback.py", line 190, in ping
db(table.id==id_).update(status=status)
UnboundLocalError: local variable 'status' referenced before assignment
Я бы ожидал, что status
всегда будет присвоено значение. Может ли быть, что выдается какое-то другое исключение (возможно, во внутреннем try
) и finally
затемняет его?
...
try:
server_url = self._get_pingback_server(target)
except PingbackClientError, e:
status = e.message
else:
try:
server = xmlrpclib.ServerProxy(server_url)
status = server.pingback.ping(self.source, target)
except xmlrpclib.Fault, e:
status = e
finally:
db(table.id==id_).update(status=status) # <-- UnboundLocalError
...
Спасибо, HC