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! 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()"));
#include
#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! #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; }
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! 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