summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits/unit/UnitDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/sevenUnits/unit/UnitDatabase.java')
-rw-r--r--src/main/java/sevenUnits/unit/UnitDatabase.java32
1 files changed, 23 insertions, 9 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java
index a1dbb0a..7c72570 100644
--- a/src/main/java/sevenUnits/unit/UnitDatabase.java
+++ b/src/main/java/sevenUnits/unit/UnitDatabase.java
@@ -1344,10 +1344,10 @@ public final class UnitDatabase {
final String name = lineMatcher.group(1);
final String expression = lineMatcher.group(2);
- if (name.endsWith(" ")) {
- System.err.printf("Warning - line %d's dimension name ends in a space",
- lineCounter);
- }
+ // if (name.endsWith(" ")) {
+ // System.err.printf("Warning - line %d's dimension name ends in a space",
+ // lineCounter);
+ // }
// if expression is "!", search for an existing dimension
// if no unit found, throw an error
@@ -1360,7 +1360,7 @@ public final class UnitDatabase {
final ObjectProduct<BaseDimension> dimension;
try {
dimension = this.getDimensionFromExpression(expression);
- } catch (final IllegalArgumentException e) {
+ } catch (final IllegalArgumentException | NoSuchElementException e) {
System.err.printf("Parsing error on line %d:%n", lineCounter);
throw e;
}
@@ -1444,7 +1444,8 @@ public final class UnitDatabase {
final UnitPrefix prefix;
try {
prefix = this.getPrefixFromExpression(expression);
- } catch (final IllegalArgumentException e) {
+ } catch (final IllegalArgumentException
+ | NoSuchElementException e) {
System.err.printf("Parsing error on line %d:%n", lineCounter);
throw e;
}
@@ -1454,7 +1455,8 @@ public final class UnitDatabase {
final Unit unit;
try {
unit = this.getUnitFromExpression(expression);
- } catch (final IllegalArgumentException e) {
+ } catch (final IllegalArgumentException
+ | NoSuchElementException e) {
System.err.printf("Parsing error on line %d:%n", lineCounter);
throw e;
}
@@ -1582,8 +1584,15 @@ public final class UnitDatabase {
}
return base.toExponent(exponent);
+ } else {
+ final ObjectProduct<BaseDimension> dimension = this.dimensions
+ .get(name);
+ if (dimension == null)
+ throw new NoSuchElementException(
+ "No dimension with name \"" + name + "\".");
+ else
+ return dimension;
}
- return this.dimensions.get(name);
}
/**
@@ -1696,7 +1705,12 @@ public final class UnitDatabase {
try {
return UnitPrefix.valueOf(Double.parseDouble(name));
} catch (final NumberFormatException e) {
- return this.prefixes.get(name);
+ final UnitPrefix prefix = this.prefixes.get(name);
+ if (prefix == null)
+ throw new NoSuchElementException(
+ "No prefix with name \"" + name + "\".");
+ else
+ return prefix;
}
}