mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
.TCore: adjusted exception handling in CalcContext::Evaluate
git-svn-id: svn://ultimatepp.org/upp/trunk@3277 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
9004bbc0e2
commit
f80e374418
2 changed files with 12 additions and 10 deletions
|
|
@ -579,22 +579,22 @@ Value CalcContext::Get(String name) const
|
|||
return Value();
|
||||
}
|
||||
|
||||
Value CalcContext::Evaluate(String expr)
|
||||
Value CalcContext::TryEvaluate(String expr)
|
||||
{
|
||||
CalcParser parser;
|
||||
try
|
||||
{
|
||||
CalcNodePtr cn = parser.ScanVoid(expr);
|
||||
if(!cn)
|
||||
return Value();
|
||||
return cn->Calc(*this);
|
||||
try {
|
||||
return Evaluate(expr);
|
||||
}
|
||||
catch(Exc e)
|
||||
{
|
||||
catch(Exc e) {
|
||||
return ErrorValue(e);
|
||||
}
|
||||
}
|
||||
|
||||
Value CalcContext::Evaluate(String expr)
|
||||
{
|
||||
CalcNodePtr node = CalcParser().ScanVoid(expr);
|
||||
return !!node ? node->Calc(*this) : Value();
|
||||
}
|
||||
|
||||
double CalcContext::EvaluateDouble(String expr)
|
||||
{
|
||||
CalcNodePtr node = CalcParser().ScanVoid(expr);
|
||||
|
|
|
|||
|
|
@ -342,6 +342,8 @@ public:
|
|||
CalcContext(const CalcContext& context, int);
|
||||
virtual ~CalcContext();
|
||||
|
||||
Value TryEvaluate(String expr);
|
||||
|
||||
Value Evaluate(String expr);
|
||||
double EvaluateDouble(String expr);
|
||||
String EvaluateString(String expr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue