code: private CachedExceptionSet computeBlockExceptionSet(BasicBlock basicBlock, TypeFrame result) throws DataflowAnalysisException {
  
          ExceptionSet exceptionSet = computeThrownExceptionTypes(basicBlock);
  
  
          TypeFrame copyOfResult = createFact();
          copy(result, copyOfResult);
  
          CachedExceptionSet cachedExceptionSet = new CachedExceptionSet(copyOfResult, exceptionSet);
          thrownExceptionSetMap.put(basicBlock, cachedExceptionSet);
  
          return cachedExceptionSet;
      }
docs: Compute the set of exceptions that can be thrown from the given basic
  block. This should only be called if the existing cached exception set is
  out of date.
  
  @param basicBlock
  the basic block
  @param result
  the result fact for the block; this is used to determine
  whether or not the cached exception set is up to date
  @return the cached exception set for the block