<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_exception_by_name( name, detailCode='0', description='', traceInformation=None, identifier=None, nodeId=None, ):
 """Create a DataONEException based object by name. Args: name: str The type name of a DataONE Exception. E.g. NotFound. If an unknown type name is used, it is automatically set to ServiceFailure. As the XML Schema for DataONE Exceptions does not restrict the type names, this may occur when deserializing an exception not defined by DataONE. detailCode: int Optional index into a table of predefined error conditions. See Also: For remaining args, see: ``DataONEException()`` """

    try:
        dataone_exception = globals()[name]
    except LookupError:
        dataone_exception = ServiceFailure
    return dataone_exception(
        detailCode, description, traceInformation, identifier, nodeId
    )