code: public static EvernoteException convert(Exception ex) {
  		// construct exception message
  		final StringBuilder sb = new StringBuilder();
  		sb.append(ex.getClass().getName());
  		if (ex instanceof EDAMUserException) {
  			final EDAMErrorCode errorCode = ((EDAMUserException) ex).getErrorCode();
  			if (errorCode == null) {
  				sb.append(", ErrorCode [null");
  			} else {
  				sb.append(", ErrorCode [" + errorCode + "(" + errorCode.getValue() + ")");
  			}
  			sb.append("], Parameter [");
  			sb.append(((EDAMUserException) ex).getParameter());
  			sb.append("]");
  		} else if (ex instanceof EDAMSystemException) {
  			final EDAMErrorCode errorCode = ((EDAMSystemException) ex).getErrorCode();
  			if (errorCode == null) {
  				sb.append(", ErrorCode [null");
  			} else {
  				sb.append(", ErrorCode [" + errorCode + "(" + errorCode.getValue() + ")");
  			}
  			sb.append("], Message [");
  			sb.append(((EDAMSystemException) ex).getMessage());
  			sb.append("], RateLimitDuration [");
  			sb.append(((EDAMSystemException) ex).getRateLimitDuration());
  			sb.append("]");
  		} else if (ex instanceof EDAMNotFoundException) {
  			sb.append(", Identifier [");
  			sb.append(((EDAMNotFoundException) ex).getIdentifier());
  			sb.append("], Key [");
  			sb.append(((EDAMNotFoundException) ex).getKey());
  			sb.append("]");
  		} else {
  			sb.append(", Message [");
  			sb.append(ex.getMessage());
  			sb.append("]");
  		}
  		return new EvernoteException(sb.toString(), ex);
  	}
docs: convert to {@link EvernoteException}
  
  @param ex original exception
  @return converted exception