class_docstr: listen for pipeline events, communicate them as necessary to the
  analysis manager.
class_docstr_tok: ["listen","for","pipeline","events",",","communicate","them","as","necessary","to","the","analysis","manager","."]
code: def handle_event(self, pipeline, event):
      if isinstance(event, RunException):
          disposition = self.handle_exception_fn(
              image_set_number=self.image_set_number,
              module_name=event.module.module_name,
              exc_info=(type(event.error), event.error, event.tb),
          )
          if disposition == ED_STOP:
              self.should_abort = True
              event.cancel_run = True
          elif disposition == ED_SKIP:
              self.should_skip = True
              event.cancel_run = False
              event.skip_thisset = True
  
imports: from cellprofiler_core.constants.worker import ED_STOP, ED_SKIP
  from ..pipeline import RunException
label_desc: Use image node_id 3 for calling the PipelineEventListener obj's underlying member method code with example usage: obj.handle_event(pipeline, event) without return types