Example #1
0
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