diff --git a/VAR.ExpressionEvaluator/ExpressionFunctionNode.cs b/VAR.ExpressionEvaluator/ExpressionFunctionNode.cs index bd08821..b79f8d7 100644 --- a/VAR.ExpressionEvaluator/ExpressionFunctionNode.cs +++ b/VAR.ExpressionEvaluator/ExpressionFunctionNode.cs @@ -17,11 +17,12 @@ namespace VAR.ExpressionEvaluator public object Eval(IEvaluationContext evaluationContext) { object[] paramValues = _paramNodes.Select(p => p.Eval(evaluationContext)).ToArray(); - Func func = evaluationContext.GetFunction(_name); - + if (func == null) + { + throw new Exception(string.Format("Function {0} not found", _name)); + } object result = func(paramValues); - return result; } } diff --git a/VAR.ExpressionEvaluator/ExpressionVariableNode.cs b/VAR.ExpressionEvaluator/ExpressionVariableNode.cs index a582a7e..0bb209a 100644 --- a/VAR.ExpressionEvaluator/ExpressionVariableNode.cs +++ b/VAR.ExpressionEvaluator/ExpressionVariableNode.cs @@ -1,4 +1,6 @@ -namespace VAR.ExpressionEvaluator +using System; + +namespace VAR.ExpressionEvaluator { public class ExpressionVariableNode : IExpressionNode { @@ -11,7 +13,12 @@ public object Eval(IEvaluationContext evaluationContext) { - return evaluationContext.GetVariable(_name); + object value = evaluationContext.GetVariable(_name); + if (value == null) + { + throw new Exception(string.Format("Variable {0} not found", _name)); + } + return value; } } }