code: @Override public String getMessage() {
      String gaiName = OsConstants.gaiName(error);
      if (gaiName == null) {
        gaiName = "GAI_ error " + error;
      }
      String description = NetworkOs.gai_strerror(error);
      return functionName + " failed: " + gaiName + " (" + description + ")";
    }
docs: Converts the stashed function name and error value to a human-readable string.
  We do this here rather than in the constructor so that callers only pay for
  this if they need it.