def handleApplicationFailure(x): import diane.application logger.warning("application failure detected: %s", x, exc_info=True) if isinstance(x, diane.application.ApplicationCritical): appx = x else: if isinstance(x, CORBA.UserException): # use-case: XFileTransferError appx = diane.application.ApplicationFailure(str(x)) # CORBA exceptions cannot be unpickled for some reason else: appx = diane.application.ApplicationFailure(x) from diane.util.compatibility import format_exc appx.traceback_string = format_exc() raise appx