code: private void removeThrownExceptionHierarchy(String thrownException) {
          try {
              if (Values.DOTTED_JAVA_LANG_EXCEPTION.equals(thrownException) || Values.DOTTED_JAVA_LANG_THROWABLE.equals(thrownException)) {
                  // Exception/Throwable can be thrown even tho the method isn't declared to throw
                  // Exception/Throwable in the case of templated Exceptions
                  clearExceptions();
              } else {
                  removeException(thrownException);
                  JavaClass exCls = Repository.lookupClass(thrownException);
                  String clsName;
  
                  do {
                      exCls = exCls.getSuperClass();
                      if (exCls == null) {
                          break;
                      }
                      clsName = exCls.getClassName();
                      removeException(clsName);
                  } while (!declaredCheckedExceptions.isEmpty() && !Values.DOTTED_JAVA_LANG_EXCEPTION.equals(clsName)
                          && !Values.DOTTED_JAVA_LANG_ERROR.equals(clsName));
              }
  
          } catch (ClassNotFoundException cnfe) {
              bugReporter.reportMissingClass(cnfe);
              clearExceptions();
          }
      }
docs: removes this thrown exception the list of declared thrown exceptions, including all exceptions in this exception's hierarchy. If an exception class is
  found that can't be loaded, then just clear the list of declared checked exceptions and get out.
  
  @param thrownException
  the exception and it's hierarchy to remove