From 00acd729f39c7e6b5db35c6c8a49ba5c55382e58 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Mon, 21 Feb 2022 17:08:58 +0800 Subject: add an extra idiom for Lua pcall / xpcall: print result if success, result = try func --- spec/outputs/try-catch.lua | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) (limited to 'spec/outputs') diff --git a/spec/outputs/try-catch.lua b/spec/outputs/try-catch.lua index d4c02ac..692905e 100644 --- a/spec/outputs/try-catch.lua +++ b/spec/outputs/try-catch.lua @@ -3,23 +3,52 @@ xpcall(function() end, function(err) return print(err) end) -local success, result = xpcall(function() - return func(1, 2, 3) -end, function(err) - return print(err) -end) xpcall(func, function(err) return print(err) end, 1, 2, 3) -success, result = pcall(func, 1, 2, 3) pcall(function() print("trying") return func(1, 2, 3) end) +do + local success, result = xpcall(function() + return func(1, 2, 3) + end, function(err) + return print(err) + end) + success, result = pcall(func, 1, 2, 3) +end pcall(tb.func) pcall(tb.func) pcall(tb.func) pcall((tb.func())) pcall(tb.func, 1) pcall(tb.func, 1) +if (xpcall(func, function(err) + return print(err) +end, 1)) then + print("OK") +end +if xpcall(func, function(err) + return print(err) +end, 1) then + print("OK") +end +do + do + local success, result = pcall(func, "abc", 123) + if success then + print(result) + end + end + local success, result = xpcall(func, function(err) + return print(err) + end, "abc", 123) + success, result = xpcall(func, function(err) + return print(err) + end, "abc", 123) + if success then + print(result) + end +end return nil -- cgit v1.2.3-55-g6feb