Пример #1
0
 /**
  * Explains an {@link Exception} to the user.
  *
  * @param e the {@link Exception}
  */
 public static void explainException(Exception e) {
   if (getNestedException(e, InvocationTargetException.class) != null) {
     explainNestedInvocationTargetException(e);
     return;
   }
   if (e instanceof OsmTransferException) {
     explainOsmTransferException((OsmTransferException) e);
     return;
   }
   explainGeneric(e);
 }
Пример #2
0
  /**
   * Explains an {@link OsmTransferException} to the user.
   *
   * @param e the {@link OsmTransferException}
   */
  public static void explainOsmTransferException(OsmTransferException e) {
    if (getNestedException(e, SecurityException.class) != null) {
      explainSecurityException(e);
      return;
    }
    if (getNestedException(e, SocketException.class) != null) {
      explainNestedSocketException(e);
      return;
    }
    if (getNestedException(e, UnknownHostException.class) != null) {
      explainNestedUnkonwnHostException(e);
      return;
    }
    if (getNestedException(e, IOException.class) != null) {
      explainNestedIOException(e);
      return;
    }
    if (getNestedException(e, IllegalDataException.class) != null) {
      explainNestedIllegalDataException(e);
      return;
    }
    if (e instanceof OsmApiInitializationException) {
      explainOsmApiInitializationException((OsmApiInitializationException) e);
      return;
    }

    if (e instanceof ChangesetClosedException) {
      explainChangesetClosedException((ChangesetClosedException) e);
      return;
    }

    if (e instanceof MissingOAuthAccessTokenException) {
      explainMissingOAuthAccessTokenException((MissingOAuthAccessTokenException) e);
      return;
    }

    if (e instanceof OsmApiException) {
      OsmApiException oae = (OsmApiException) e;
      switch (oae.getResponseCode()) {
        case HttpURLConnection.HTTP_PRECON_FAILED:
          explainPreconditionFailed(oae);
          return;
        case HttpURLConnection.HTTP_GONE:
          explainGoneForUnknownPrimitive(oae);
          return;
        case HttpURLConnection.HTTP_INTERNAL_ERROR:
          explainInternalServerError(oae);
          return;
        case HttpURLConnection.HTTP_BAD_REQUEST:
          explainBadRequest(oae);
          return;
        case HttpURLConnection.HTTP_NOT_FOUND:
          explainNotFound(oae);
          return;
        case HttpURLConnection.HTTP_CONFLICT:
          explainConflict(oae);
          return;
        case HttpURLConnection.HTTP_UNAUTHORIZED:
          explainAuthenticationFailed(oae);
          return;
        case HttpURLConnection.HTTP_FORBIDDEN:
          explainAuthorizationFailed(oae);
          return;
        case HttpURLConnection.HTTP_CLIENT_TIMEOUT:
          explainClientTimeout(oae);
          return;
        case 509:
          explainBandwidthLimitExceeded(oae);
          return;
        default:
          explainGenericHttpException(oae);
          return;
      }
    }
    explainGeneric(e);
  }