An internal test to confirm that ErrorExpression returns an empty string for an error triggered manually by a user function during evaluation.

ID: 318

				
					using uCalcSoftware;

var uc = new uCalc();

static void MyFunc(uCalc.Callback cb) {
   // This error occurs during evaluation, not parsing.
   cb.Error.Raise("Manual evaluation failure!");
}

static void MyHandler(Handle_uCalc h) {
   var uc = new uCalc(h);
   Console.WriteLine($"Handler triggered for error: {uc.Error.Message}");
   Console.WriteLine($"ErrorExpression() returned: '{uc.Error.Expression}'");
   Console.WriteLine($"Is expression empty? {uc.Error.Expression == ""}");
}


uc.DefineFunction("MyFunc()", MyFunc);
uc.Error.AddHandler(MyHandler);

// The expression 'MyFunc()' itself is valid syntactically.
Console.WriteLine(uc.EvalStr("MyFunc()"));
				
			
Handler triggered for error: Manual evaluation failure!
ErrorExpression() returned: ''
Is expression empty? True
Manual evaluation failure!
				
					#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

#define tf(IsTrue) ((IsTrue) ? "True" : "False")

void ucalc_call MyFunc(uCalcBase::Callback cb) {
   // This error occurs during evaluation, not parsing.
   cb.Error().Raise("Manual evaluation failure!");
}

void ucalc_call MyHandler(Handle_uCalc h) {
   auto uc = uCalc(h);
   cout << "Handler triggered for error: " << uc.Error().Message() << endl;
   cout << "ErrorExpression() returned: '" << uc.Error().Expression() << "'" << endl;
   cout << "Is expression empty? " << tf(uc.Error().Expression() == "") << endl;
}

int main() {
   uCalc uc;
   uc.DefineFunction("MyFunc()", MyFunc);
   uc.Error().AddHandler(MyHandler);

   // The expression 'MyFunc()' itself is valid syntactically.
   cout << uc.EvalStr("MyFunc()") << endl;
}
				
			
Handler triggered for error: Manual evaluation failure!
ErrorExpression() returned: ''
Is expression empty? True
Manual evaluation failure!
				
					Imports System
Imports uCalcSoftware
Public Module Program
   
   Public Sub MyFunc(ByVal cb As uCalc.Callback)
      '// This error occurs during evaluation, not parsing.
      cb.Error.Raise("Manual evaluation failure!")
   End Sub
   
   Public Sub MyHandler(ByVal h As Handle_uCalc)
      Dim uc As New uCalc(h)
      Console.WriteLine($"Handler triggered for error: {uc.Error.Message}")
      Console.WriteLine($"ErrorExpression() returned: '{uc.Error.Expression}'")
      Console.WriteLine($"Is expression empty? {uc.Error.Expression = ""}")
   End Sub
   
   Public Sub Main()
      Dim uc As New uCalc()
      uc.DefineFunction("MyFunc()", AddressOf MyFunc)
      uc.Error.AddHandler(AddressOf MyHandler)
      
      '// The expression 'MyFunc()' itself is valid syntactically.
      Console.WriteLine(uc.EvalStr("MyFunc()"))
   End Sub
End Module
				
			
Handler triggered for error: Manual evaluation failure!
ErrorExpression() returned: ''
Is expression empty? True
Manual evaluation failure!