docs: private void handleExceptions(Subroutine subroutine, InstructionHandle pei, BasicBlock etb) {
          etb.setExceptionThrower(pei);
  
          // Remember whether or not a universal exception handler
          // is reachable. If so, then we know that exceptions raised
          // at this instruction cannot propagate out of the method.
          boolean sawUniversalExceptionHandler = false;
  
          List<CodeExceptionGen> exceptionHandlerList = exceptionHandlerMap.getHandlerList(pei);
          if (exceptionHandlerList != null) {
              for (CodeExceptionGen exceptionHandler : exceptionHandlerList) {
                  InstructionHandle handlerStart = exceptionHandler.getHandlerPC();
                  subroutine.addEdgeAndExplore(etb, handlerStart, HANDLED_EXCEPTION_EDGE);
  
                  if (Hierarchy.isUniversalExceptionHandler(exceptionHandler.getCatchType())) {
                      sawUniversalExceptionHandler = true;
                  }
              }
          }
  
          // If required, mark this block as throwing an unhandled exception.
          // For now, we assume that if there is no reachable handler that handles
          // ANY exception type, then the exception can be thrown out of the
          // method.
          if (!sawUniversalExceptionHandler) {
              if (DEBUG) {
                  System.out.println("Adding unhandled exception edge from " + pei);
              }
              subroutine.setUnhandledExceptionBlock(etb);
          }
      }