diff --git a/src/main/java/carpet/script/Expression.java b/src/main/java/carpet/script/Expression.java index 9964deb1..72310a9f 100644 --- a/src/main/java/carpet/script/Expression.java +++ b/src/main/java/carpet/script/Expression.java @@ -19,6 +19,7 @@ import carpet.script.exception.ExpressionException; import carpet.script.exception.InternalExpressionException; import carpet.script.exception.ResolvedException; import carpet.script.exception.ReturnStatement; +import carpet.script.exception.ThrowStatement; import carpet.script.language.Arithmetic; import carpet.script.language.ControlFlow; import carpet.script.language.DataStructures; @@ -602,9 +603,9 @@ public class Expression { return exprProvider.get().evalValue(c, expectedType); } - catch (ContinueStatement | BreakStatement | ReturnStatement exc) + catch (ContinueStatement | BreakStatement | ReturnStatement | ThrowStatement exc) { - throw new ExpressionException(c, this, "Control flow functions, like continue, break, or return, should only be used in loops and functions respectively."); + throw new ExpressionException(c, this, "Control flow functions, like continue, break, throw or return, should only be used in loops, try blocks, and functions respectively."); } catch (ExitStatement exit) { diff --git a/src/main/java/carpet/script/value/FunctionValue.java b/src/main/java/carpet/script/value/FunctionValue.java index d36f3113..3762508c 100644 --- a/src/main/java/carpet/script/value/FunctionValue.java +++ b/src/main/java/carpet/script/value/FunctionValue.java @@ -122,7 +122,7 @@ public class FunctionValue extends Value implements Fluff.ILazyFunction @Override public double readDoubleNumber() { - throw new InternalExpressionException("Function value has no numeric value"); + return getNumParams(); } @Override