【游戏】
一、规则机制
线上事故:支付请求的渠道参数缺失,一路传到深处才炸,报错信息看不出缺了什么。源码 SLReqMessage 的请求封装立了样板:入口先逐个校验参数,空参立即返回并打出带函数名与参数名的错误日志;商品是否存在再查一遍配置,查不到同样早退。错误在门口就暴露,日志直接指出缺哪一项,排查不再倒推。
二、错误写法
-- 错误:参数缺失一路传到底才炸
function requestPay(channel, price)
deepPay(channel, price)
end
三、正确写法
local function requestPay(channel, currencyID, price)
if channel == nil or channel == "" then
showTip("支付方式缺失")
return false
end
if currencyID == nil or price == nil then
showTip("支付参数缺失")
return false
end
startPay(channel, currencyID, price)
return true
end
四、边界处理
空参逐项早退;缺失项打专属日志;校验通过才进入后续流程。
五、FAQ
问:早退返回什么?
答:失败返回 false,调用方可判。
问:日志记什么?
答:函数名加参数名,一眼定位缺失项。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 元方法 __len 的触发就这一行: 对带 __len 的表做 t 操作时,Lua 调用 __len 而不是返…
【语法算法】 load 的编译本质就这一行: load 把字符串编译成函数——字符串里的代码被编译成可调用的函数——调用返回…
【语法算法】 error 的传播本质就这一行: error 抛出一个错误——第二个参数指定错误信息的层级——层级 2 表示把…
【语法算法】 pcall 的保护调用本质就这两行: pcall 把函数包在保护壳里执行——函数内部报错不会传播到外层——ok…
【语法算法】 元方法 __tostring 的触发就这一行: 对带 __tostring 的表做 tostring(t) 或…
【语法算法】 元方法 __call 的触发就这一行: 对带 __call 元方法的表做函数调用 t(...) 时,Lua 不…