ast.go, pasrse.go: fixed the recover routine
This commit is contained in:
@@ -111,11 +111,10 @@ func (ast *ast) Eval(ctx kern.ExprContext) (result any, err error) {
|
||||
if r := recover(); r != nil {
|
||||
if errVal, ok := r.(error); ok {
|
||||
err = errVal
|
||||
} else {
|
||||
err = errors.New("unexpected error while evaluating the expression")
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
err = errors.New("unexpected error while evaluating the expression")
|
||||
}
|
||||
}()
|
||||
|
||||
ast.Finish()
|
||||
@@ -123,8 +122,8 @@ func (ast *ast) Eval(ctx kern.ExprContext) (result any, err error) {
|
||||
if ast.root != nil {
|
||||
// initDefaultVars(ctx)
|
||||
if ast.forest != nil {
|
||||
for _, root := range ast.forest {
|
||||
if result, err = root.Compute(ctx); err == nil {
|
||||
for _, tree := range ast.forest {
|
||||
if result, err = tree.Compute(ctx); err == nil {
|
||||
ctx.UnsafeSetVar(kern.ControlLastResult, result)
|
||||
} else {
|
||||
//err = fmt.Errorf("error in expression nr %d: %v", i+1, err)
|
||||
|
||||
Reference in New Issue
Block a user