diff options
| author | OpportunityLiu <[email protected]> | 2019-07-22 11:02:35 +0800 |
|---|---|---|
| committer | OpportunityLiu <[email protected]> | 2019-07-22 12:07:03 +0800 |
| commit | 98c3052c933d988aa9e56aa433c433e7274164db (patch) | |
| tree | de3ea686c7c04bff82d875acc24a905e313ded76 /xmake/core/base/os.lua | |
| parent | 06b91f200e5c2f918624002a8989ddda61389930 (diff) | |
add level to error
Diffstat (limited to 'xmake/core/base/os.lua')
| -rw-r--r-- | xmake/core/base/os.lua | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua index 2f17ebc27..b8d767efd 100644 --- a/xmake/core/base/os.lua +++ b/xmake/core/base/os.lua @@ -706,7 +706,10 @@ end -- -- the parent function will capture it if we uses pcall or xpcall -- -function os.raise(msg, ...) +function os.raiselevel(level, msg, ...) + + -- set level of this function + level = level + 1 -- flush log log:flush() @@ -716,19 +719,28 @@ function os.raise(msg, ...) -- raise it if type(msg) == "string" then - error(string.tryformat(msg, ...)) + error(string.tryformat(msg, ...), level) elseif type(msg) == "table" then local errobjstr, errors = string.serialize(msg, true) if errobjstr then - error("[@encode(error)]: " .. errobjstr) + error("[@encode(error)]: " .. errobjstr, level) else - error(errors) + error(errors, level) end else - error() + error(tostring(msg), level) end end +-- raise an exception and abort the current script +-- +-- the parent function will capture it if we uses pcall or xpcall +-- +function os.raise(msg, ...) + -- add return to make it a tail call + return os.raiselevel(1, msg, ...) +end + -- is executable program file? function os.isexec(filepath) |
