try - except. How to identify errors unknown in advance?

Dan Sommers dan at tombstonezero.net
Wed Nov 16 20:07:37 EST 2011


On Wed, 16 Nov 2011 17:57:27 +0100, Frederic Rentsch wrote:

> I'd like to log MySQL errors. If I do:
> 
> 	try: (command)
> 	except MySQLdb.OperationalError, e: print e
> 
> I may get something like:
> 
> 	(1136, "Column count doesn't match value count at row 1")
> 
> If I don't know in advance which error to expect, but on the contrary
> want to find out which error occurred, I can catch any error by omitting
> the name:
> 
> 	except: (handle)
> 
> But now I don't have access to the error message 'e'. I'm sure there's a
> way and it's probably ridiculously simple.

"except" catches any exception that inherits from its argument, and all 
MySQL exceptions inherit from MySQLError, so something like this will 
catch only MySQL exceptions and nothing else:

    try: (command)
    except MySQLdb.MySQLError as e:
        print(e)

Dan




More information about the Python-list mailing list