diff options
author | Arne Juul <arnej@verizonmedia.com> | 2020-07-15 13:26:43 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2020-07-15 15:39:26 +0000 |
commit | 24ed2059c3f98cdf81ce84a340e445992aaf3407 (patch) | |
tree | e7d9d250b1e0d3dcec9ade7ca215a8004d54c943 /vespajlib | |
parent | b9cf6c807a99186edcc2e740d73ad505311e32c9 (diff) |
add input string in exception messages
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java | 30 | ||||
-rw-r--r-- | vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java | 36 |
2 files changed, 33 insertions, 33 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java b/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java index 530c5b3a2a9..cf23a24e702 100644 --- a/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java +++ b/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java @@ -44,7 +44,7 @@ class OneDegreeParser { pos++; return 0; } else if (pos > len) { - throw new IllegalArgumentException("position after end of string"); + throw new IllegalArgumentException("position after end of string when parsing <"+parseString+">"); } else { return parseString.charAt(pos++); } @@ -120,7 +120,7 @@ class OneDegreeParser { // did we find a valid char? boolean valid = false; if (pos == lastpos) { - throw new RuntimeException("internal logic error at '"+parseString+"' pos:"+pos); + throw new IllegalArgumentException("internal logic error at <"+parseString+"> pos:"+pos); } else { lastpos = pos; } @@ -131,7 +131,7 @@ class OneDegreeParser { if (isDigit(ch) || ch == '.') { valid = true; if (foundDigits) { - throw new IllegalArgumentException("found digits after not consuming previous digits"); + throw new IllegalArgumentException("found digits after not consuming previous digits when parsing <"+parseString+">"); } double divider = 1.0; foundDot = false; @@ -153,7 +153,7 @@ class OneDegreeParser { } } if (!foundDigits) { - throw new IllegalArgumentException("just a . is not a valid number"); + throw new IllegalArgumentException("just a . is not a valid number when parsing <"+parseString+">"); } accum /= divider; } @@ -163,23 +163,23 @@ class OneDegreeParser { if (ch == '\u00B0' || ch == 'o') { valid = true; if (degSet) { - throw new IllegalArgumentException("degrees sign only valid just after degrees"); + throw new IllegalArgumentException("degrees sign only valid just after degrees when parsing <"+parseString+">"); } if (!foundDigits) { - throw new IllegalArgumentException("must have number before degrees sign"); + throw new IllegalArgumentException("must have number before degrees sign when parsing <"+parseString+">"); } if (foundDot) { - throw new IllegalArgumentException("cannot have fractional degrees before degrees sign"); + throw new IllegalArgumentException("cannot have fractional degrees before degrees sign when parsing <"+parseString+">"); } ch = getNextChar(); } // apostrophe is a separator after minutes, before seconds if (ch == '\'') { if (minSet || !degSet || !foundDigits) { - throw new IllegalArgumentException("minutes sign only valid just after minutes"); + throw new IllegalArgumentException("minutes sign only valid just after minutes when parsing <"+parseString+">"); } if (foundDot) { - throw new IllegalArgumentException("cannot have fractional minutes before minutes sign"); + throw new IllegalArgumentException("cannot have fractional minutes before minutes sign when parsing <"+parseString+">"); } ch = getNextChar(); } @@ -190,7 +190,7 @@ class OneDegreeParser { if (degSet) { if (minSet) { if (secSet) { - throw new IllegalArgumentException("extra number after full field"); + throw new IllegalArgumentException("extra number after full field when parsing <"+parseString+">"); } else { seconds = accum; secSet = true; @@ -218,7 +218,7 @@ class OneDegreeParser { if (isCompassDirection(ch)) { valid = true; if (dirSet) { - throw new IllegalArgumentException("already set direction once, cannot add direction: "+ch); + throw new IllegalArgumentException("already set direction once, cannot add direction: "+ch+" when parsing <"+parseString+">"); } dirSet = true; if (ch == 'S' || ch == 'W') { @@ -245,7 +245,7 @@ class OneDegreeParser { } } if (!degSet) { - throw new IllegalArgumentException("end of field without any number seen"); + throw new IllegalArgumentException("end of field without any number seen when parsing <"+parseString+">"); } degrees += minutes / 60.0; degrees += seconds / 3600.0; @@ -253,13 +253,13 @@ class OneDegreeParser { if (findingLatitude) { if (degrees < -90.0 || degrees > 90.0) { - throw new IllegalArgumentException("out of range [-90,+90]: "+degrees); + throw new IllegalArgumentException("out of range [-90,+90]: "+degrees+" when parsing <"+parseString+">"); } latitude = degrees; foundLatitude = true; } else if (findingLongitude) { if (degrees < -180.0 || degrees > 180.0) { - throw new IllegalArgumentException("out of range [-180,+180]: "+degrees); + throw new IllegalArgumentException("out of range [-180,+180]: "+degrees+" when parsing <"+parseString+">"); } longitude = degrees; foundLongitude = true; @@ -267,7 +267,7 @@ class OneDegreeParser { break; } if (!valid) { - throw new IllegalArgumentException("invalid character: "+ch); + throw new IllegalArgumentException("invalid character: "+ch+" when parsing <"+parseString+">"); } } while (ch != 0); // everything parsed OK diff --git a/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java b/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java index 9543739d4cc..b0da6a0a131 100644 --- a/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java @@ -157,21 +157,21 @@ public class OneDegreeParserTestCase { @Test public void testAboveBoundary() { String message = parseException(false, "N90.0001"); - assertEquals("out of range [-90,+90]: 90.0001", message); + assertEquals("out of range [-90,+90]: 90.0001 when parsing <N90.0001>", message); message = parseException(false, "S90.0001"); - assertEquals("out of range [-90,+90]: -90.0001", message); + assertEquals("out of range [-90,+90]: -90.0001 when parsing <S90.0001>", message); message = parseException(true, "E180.0001"); - assertEquals("out of range [-180,+180]: 180.0001", message); + assertEquals("out of range [-180,+180]: 180.0001 when parsing <E180.0001>", message); message = parseException(true, "W180.0001"); - assertEquals("out of range [-180,+180]: -180.0001", message); + assertEquals("out of range [-180,+180]: -180.0001 when parsing <W180.0001>", message); message = parseException(false, "N90.000001"); - assertEquals("out of range [-90,+90]: 90.000001", message); + assertEquals("out of range [-90,+90]: 90.000001 when parsing <N90.000001>", message); message = parseException(false, "S90.000001"); - assertEquals("out of range [-90,+90]: -90.000001", message); + assertEquals("out of range [-90,+90]: -90.000001 when parsing <S90.000001>", message); message = parseException(true, "E180.000001"); - assertEquals("out of range [-180,+180]: 180.000001", message); + assertEquals("out of range [-180,+180]: 180.000001 when parsing <E180.000001>", message); message = parseException(true, "W180.000001"); - assertEquals("out of range [-180,+180]: -180.000001", message); + assertEquals("out of range [-180,+180]: -180.000001 when parsing <W180.000001>", message); } /** @@ -180,25 +180,25 @@ public class OneDegreeParserTestCase { @Test public void testInputErrors() { String message = parseException(false, "N90S90"); - assertEquals("already set direction once, cannot add direction: S", message); + assertEquals("already set direction once, cannot add direction: S when parsing <N90S90>", message); message = parseException(false, "E120W120"); - assertEquals("already set direction once, cannot add direction: W", message); + assertEquals("already set direction once, cannot add direction: W when parsing <E120W120>", message); message = parseException(false, "E"); - assertEquals("end of field without any number seen", message); + assertEquals("end of field without any number seen when parsing <E>", message); message = parseException(false, ""); - assertEquals("end of field without any number seen", message); + assertEquals("end of field without any number seen when parsing <>", message); message = parseException(false, "NW25"); - assertEquals("already set direction once, cannot add direction: W", message); + assertEquals("already set direction once, cannot add direction: W when parsing <NW25>", message); message = parseException(false, "N16.25\u00B0"); - assertEquals("cannot have fractional degrees before degrees sign", message); + assertEquals("cannot have fractional degrees before degrees sign when parsing <N16.25\u00B0>", message); message = parseException(false, "N16\u00B022.40'"); - assertEquals("cannot have fractional minutes before minutes sign", message); + assertEquals("cannot have fractional minutes before minutes sign when parsing <N16\u00B022.40'>", message); message = parseException(false, ""); - assertEquals("end of field without any number seen", message); + assertEquals("end of field without any number seen when parsing <>", message); message = parseException(false, "Yahoo!"); - assertEquals("invalid character: Y", message); + assertEquals("invalid character: Y when parsing <Yahoo!>", message); message = parseException(false, "N63O025.105"); - assertEquals("invalid character: O", message); + assertEquals("invalid character: O when parsing <N63O025.105>", message); } } |