我目前正在运行不同发行版的各种Linux机器上使用awesome窗口管理器。所有机器都使用相同(lua)配置文件。
有些机器安装了like (lfs),而另一些则没有。我的配置最好使用lfs,但如果没有安装,我想提供另一个(次优)回退例程。
以下是我的问题,在所有的简单性:
require(lfs)语句引发的错误?发布于 2016-01-23 16:30:59
require不是一种神奇的功能。这是一个和Lua任何其他地方一样的功能。并利用Lua标准的差错信令设备对误差进行信号处理。
因此,您可以捕获来自require的错误,就像在Lua中执行任何其他函数一样。也就是说,您将其包装在pcall中
local status, lfs = pcall(require, "lfs")
if(status) then
--lfs exists, so use it.
end实际上,您可以创建自己的prequire函数,用于加载任何内容:
function prequire(...)
local status, lib = pcall(require, ...)
if(status) then return lib end
--Library failed to load, so perhaps return `nil` or something?
return nil
end
local lfs = prequire("lfs")
if(lfs) then
--use lfs.
endhttps://stackoverflow.com/questions/34965863
复制相似问题