code: public void handleException(ObjectName pName, IOException pExp) throws IOException {
          // In case of a remote call, IOException can occur e.g. for
          // NonSerializableExceptions
          if (pathStack.size() == 0) {
              addException(pName, pExp);
          } else {
              // Happens for a deeper request, i.e with a path pointing directly into an MBean,
              // Hence we throw immediately an error here since there will be only this exception
              // and no extra info
              throw new IOException("IOException for MBean " + pName + " (" + pExp.getMessage() + ")",pExp);
          }
      }
docs: Add an exception which occurred during extraction of an {@link MBeanInfo} for
  a certain {@link ObjectName} to this map.
  
  @param pName MBean name for which the error occurred
  @param pExp exception occurred
  @throws IOException if this method decides to rethrow the execption