docs: 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
      )