From d4dad300025c75d1091e0cdcf2d9b6666618bbab Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Mon, 2 Dec 2019 02:11:14 +0100 Subject: [PATCH] Report error when variable or function is not found --- VAR.ExpressionEvaluator/ExpressionFunctionNode.cs | 7 ++++--- VAR.ExpressionEvaluator/ExpressionVariableNode.cs | 11 +++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) 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; } } }