I\'m pretty new to Python, here is some code I am looking at:
try:
connection = getConnection(database)
cursor = connection.cursor()
cursor.execu
Python does not have block scope. Anything defined inside the try
block will be available outside.
That said, you would still have a problem: if it is the getConnection()
call that raises the error, cursor
will be undefined, so the reference in the finally
block will error.
I'd suggest using contexts, like:
from contextlib import closing
try:
with closing(getConnection(database)) as connection:
with closing(connection.cursor()) as cursor:
cursor.execute("some query")
except:
log.error("Problem")
raise
This should ensure the closing (see more here).
In some cases, you won't even need closing
since connection is most likely to support the context protocol itself, so that would be just with getConnection(database)...