code: private void checkForThreadErrors() throws IOException {
      if(error == true && childException != null) {
        error = false;
        IOException temp = childException;
        childException = null;
        throw temp;
      }
    }
docs: Attempts to throw a stored exception that had been caught from a child
  thread. This method should be called regularly in any public method to
  let the calling thread know a problem occured.
  @throws IOException