docs: private CachedExceptionSet getCachedExceptionSet(BasicBlock basicBlock) {
          CachedExceptionSet cachedExceptionSet = thrownExceptionSetMap.get(basicBlock);
          if (cachedExceptionSet == null) {
              // When creating the cached exception type set for the first time:
              // - the block result is set to TOP, so it won't match
              // any block result that has actually been computed
              // using the analysis transfer function
              // - the exception set is created as empty (which makes it
              // return TOP as its common superclass)
  
              TypeFrame top = createFact();
              makeFactTop(top);
              cachedExceptionSet = new CachedExceptionSet(top, exceptionSetFactory.createExceptionSet());
  
              thrownExceptionSetMap.put(basicBlock, cachedExceptionSet);
          }
  
          return cachedExceptionSet;
      }