From 6bcede11d9f19de50778ac7702af5e75e3d71f88 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 26 Jul 2024 16:02:35 +0800 Subject: [PATCH] Refactor SUI core to handle backend script errors during page execution --- sui/api/request.go | 4 ++-- sui/core/request.go | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/sui/api/request.go b/sui/api/request.go index d5ca7eb7..c84159a4 100644 --- a/sui/api/request.go +++ b/sui/api/request.go @@ -133,14 +133,14 @@ func (r *Request) Render() (string, int, error) { if c.Data != "" { err = r.Request.ExecStringMerge(data, c.Data) if err != nil { - return "", 500, fmt.Errorf("data error, please re-complie the page %s", err.Error()) + return "", 500, fmt.Errorf("data error, please re-complie the page. %s", err.Error()) } } if c.Global != "" { global, err := r.Request.ExecString(c.Global) if err != nil { - return "", 500, fmt.Errorf("global data error, please re-complie the page %s", err.Error()) + return "", 500, fmt.Errorf("global data error, please re-complie the page. %s", err.Error()) } data["$global"] = global } diff --git a/sui/core/request.go b/sui/core/request.go index 78163b5f..62a8c8d9 100644 --- a/sui/core/request.go +++ b/sui/core/request.go @@ -126,7 +126,11 @@ func (r *Request) ExecString(data string) (Data, error) { if err != nil { return nil, err } - r.Exec(res) + err = r.Exec(res) + if err != nil { + return nil, err + } + return res, nil } @@ -288,7 +292,11 @@ func (r *Request) call(p interface{}) (interface{}, error) { // Call the backend script if r.Script != nil && strings.HasPrefix(processName, "@") { method := processName[1:] - return r.Script.Call(r, method, processArgs...) + v, err := r.Script.Call(r, method, processArgs...) + if err != nil { + return nil, fmt.Errorf("backend script %s %s, please check the script", method, err.Error()) + } + return v, nil } process, err := process.Of(processName, processArgs...)