私はまだ例外処理のハングアップを持っていないようです。私は途方に暮れてよ:( 次のコードは、時々、このエラーが返されます。Python try finally except
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
おかげマーク。したがって、ブロックが常に実行されるため、失敗した場合はtryブロックのどこか他の場所で発生したキャッチされていない例外を効果的に隠すことができますか? – hcvst
「隠す」は一時的に傍受し、最終的にブロックが独自の例外を除外しない場合にのみ転送します。 –