[Answer]-Python Generic Exception to Catch Rest Of Errors

1👍

Yes, and empty except will catch any exception different from ThreadVault.DoesNotExist (in this case). But you can improve your code a little more.

Try always to put the less code possible inside the try block. You code could be:

for thread in thread_batch:
    try:
        obj = query_set.get(thread_id=thread['thread_id'])
    except ThreadVault.DoesNotExist:
        obj = ThreadVault(**thread)
    except:
        raise Exception("There has been a unknown error in the database")
    else:    # Note we add the else statement here.
        for key, value in thread.iteritems():
            setattr(obj, key, value)
        obj.unanswered = True
    # Since save function also hits the database
    # it should be within a try block as well.
    try:
       obj.save()
    except:
       raise Exception("There has been a unknown error in the database")

Leave a comment