diff --git a/src/main/java/com/annimon/ownlang/lib/StringValue.java b/src/main/java/com/annimon/ownlang/lib/StringValue.java index 91ca490..d58f59f 100644 --- a/src/main/java/com/annimon/ownlang/lib/StringValue.java +++ b/src/main/java/com/annimon/ownlang/lib/StringValue.java @@ -87,20 +87,12 @@ public final class StringValue implements Value { @Override public int asInt() { - try { - return Integer.parseInt(value); - } catch (NumberFormatException e) { - return 0; - } + return Integer.parseInt(value); } @Override public double asNumber() { - try { - return Double.parseDouble(value); - } catch (NumberFormatException e) { - return 0; - } + return Double.parseDouble(value); } @Override diff --git a/src/test/java/com/annimon/ownlang/parser/ParserTest.java b/src/test/java/com/annimon/ownlang/parser/ParserTest.java index 598a798..9a473d5 100644 --- a/src/test/java/com/annimon/ownlang/parser/ParserTest.java +++ b/src/test/java/com/annimon/ownlang/parser/ParserTest.java @@ -35,8 +35,11 @@ public class ParserTest { BlockStatement program = assertExpression(input, expected); program.execute(); final Value actual = Variables.get("a"); - assertEquals(expectedValue.asNumber(), actual.asNumber(), 0.001); - assertEquals(expectedValue.asString(), actual.asString()); + try { + assertEquals(expectedValue.asNumber(), actual.asNumber(), 0.001); + } catch (NumberFormatException nfe) { + assertEquals(expectedValue.asString(), actual.asString()); + } } private static BlockStatement assertExpression(String input, Expression expected) { diff --git a/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java b/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java index 1478368..36ccbde 100644 --- a/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java +++ b/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java @@ -1,6 +1,7 @@ package com.annimon.ownlang.parser.ast; import static com.annimon.ownlang.parser.ast.ASTHelper.*; +import com.annimon.ownlang.exceptions.VariableDoesNotExistsException; import org.junit.Test; /** @@ -26,7 +27,7 @@ public class VariableExpressionTest { assertValue(number(8), var("a").eval()); } - @Test(expected = RuntimeException.class) + @Test(expected = VariableDoesNotExistsException.class) public void testUnknownVariable() { var("a").eval(); }