py3k exception handling