I have a try/finally clause in my script. Is it possible to get the exact error message from within the finally clause?
views:
563answers:
3
                +1 
                A: 
                
                
              
            You'll want to do that in the except clause, not the finally.
Refer to: http://www.doughellmann.com/articles/Python-Exception-Handling/
                  Josh
                   2009-10-23 05:40:07
                
              
                +4 
                A: 
                
                
              No, at finally time sys.exc_info is all-None, whether there has been an exception
or not.  Use:
try:
  whatever
except:
  here sys.exc_info is valid
  to re-raise the exception, use a bare `raise`
else:
  here you know there was no exception
finally:
  and here you can do exception-independent finalization
                  Alex Martelli
                   2009-10-23 05:43:41
                
              Thanks. sys.exc_info (in an except clause) is what I need
                  Goutham
                   2009-10-23 06:08:23
                
                +1 
                A: 
                
                
              
            The finally block will be executed regardless of whether an exception was thrown or not, so as Josh points out, you very likely don't want to be handling it there.
If you really do need the value of an exception that was raised, then you should catch the exception in an except block, and either handle it appropriately or re-raise it, and then use that value in the finally block -- with the expectation that it may never have been set, if there was no exception raised during execution.
import sys
exception_name = exception_value = None
try:
    # do stuff
except Exception, e:
    exception_name, exception_value = sys.exc_info()[:2]
    raise   # or don't -- it's up to you
finally:
    # do something with exception_name and exception_value
    # but remember that they might still be none
                  Ian Clelland
                   2009-10-23 05:56:35