如何解决 Lua 中 string.format 参数不正确抛出异常问题

如题,用 string.format 打印 log 的时候经常会由于

function gao(sz, ...)
   print(string.format(sz, ...))
end
local a
gao("%d get %d", a)

参数列表少写或者传入值为 nil 而导致程序崩溃。不知道各位有什么好的解决方法?

阅读 8.1k
2 个回答

根据前后环境,可以有不同的方式规避。

如果不管前后语境,通用做法可以使用pcall,避免系统崩溃
local r,r1,r2=pcall(string.format,sz,...)
if r then
print(r)
else
print('error',r1,r2)
end

避免的另外一个办法就是别用string.format
考虑使用连接符或者table.concat

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进