code: def experiment_exception_hook(exc_type, value, tb):
      """
      End an experiment with status to be "FAILED". This exception tries to catch those uncaught exception
      and end the experiment automatically.
  
      Parameters
      exc_type: Exception type
      value: Exception's value
      tb: Exception's traceback
      """
      logger.error(
          f"An exception has been raised[{exc_type.__name__}: {value}]."
      )
  
      # Same as original format
      traceback.print_tb(tb)
      print(f"{exc_type.__name__}: {value}")
  
      R.end_exp(recorder_status=Recorder.STATUS_FA)
  
file_path: qlib/qlib/workflow/utils.py
imports: import atexit
  import logging
  import sys
  import traceback
  from ..log import get_module_logger
  from .None import R
  from .recorder import Recorder
label_desc: Use image node_id 2 for calling a global function with example usage: experiment_exception_hook(exc_type, value, tb) without return types