Index: trunk/src/org/openstreetmap/josm/tools/OsmUrlToBounds.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/OsmUrlToBounds.java	(revision 6513)
+++ trunk/src/org/openstreetmap/josm/tools/OsmUrlToBounds.java	(revision 6514)
@@ -88,5 +88,4 @@
      * @param url string for parsing
      * @return Bounds if hashurl, {@code null} otherwise
-     * @throws IllegalArgumentException if URL is invalid
      */
     private static Bounds parseHashURLs(String url) throws IllegalArgumentException {
@@ -98,5 +97,6 @@
         String[] parts = coordPart.split("/");
         if (parts.length < 3) {
-            throw new IllegalArgumentException(tr("URL does not contain {0}/{1}/{2}", tr("zoom"), tr("latitude"), tr("longitude")));
+            Main.warn(tr("URL does not contain {0}/{1}/{2}", tr("zoom"), tr("latitude"), tr("longitude")));
+            return null;
         }
         int zoom;
@@ -105,15 +105,18 @@
             zoom = Integer.parseInt(parts[0]);
         } catch (NumberFormatException e) {
-            throw new IllegalArgumentException(tr("URL does not contain valid {0}", tr("zoom")), e);
+            Main.warn(tr("URL does not contain valid {0}", tr("zoom")), e);
+            return null;
         }
         try {
             lat = Double.parseDouble(parts[1]);
         } catch (NumberFormatException e) {
-            throw new IllegalArgumentException(tr("URL does not contain valid {0}", tr("latitude")), e);
+            Main.warn(tr("URL does not contain valid {0}", tr("latitude")), e);
+            return null;
         }
         try {
             lon = Double.parseDouble(parts[2]);
         } catch (NumberFormatException e) {
-            throw new IllegalArgumentException(tr("URL does not contain valid {0}", tr("longitude")), e);
+            Main.warn(tr("URL does not contain valid {0}", tr("longitude")), e);
+            return null;
         }
         return positionToBounds(lat, lon, zoom);
