Changeset 391

Show
Ignore:
Timestamp:
09/11/08 13:44:30 (4 months ago)
Author:
johnbywater
Message:

Improved raiseError() method.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/dm/command/base.py

    r123 r391  
    11from dm.ioc import * 
    22from dm.exceptions import * 
     3import sys 
     4import traceback 
    35 
    46debug = RequiredFeature('Debug') 
     
    3739            self.transaction.commit() 
    3840 
    39     def raiseError(self, message): 
     41    def raiseError(self, message, inst=None): 
    4042        "Raise command error exception." 
    4143        if self.isTransaction: 
     
    4345        if debug: 
    4446            self.logger.debug("Command error: " + message) 
     47        if inst and hasattr(sys, 'last_traceback') and sys.last_traceback: 
     48            tbStr = traceback.format_tb(sys.last_traceback) 
     49            message += '\n\n' + tbStr + '\n\n' 
    4550        exceptionClass = self.exceptionClass 
    4651        raise exceptionClass(message) 
     
    126131            else: 
    127132                self.object = register.create(**objectKwds) 
    128         except KforgeDomError, inst: 
     133        #except KforgeDomError, inst: 
     134        #except Exception, inst: 
     135        except DomainModelApplicationError, inst: 
    129136            message = "Can't create domain object: %s " % str(inst) 
    130             self.raiseError(message
     137            self.raiseError(message, inst
    131138 
    132139