gpt4 book ai didi

Lua - 需要回退/错误处理

转载 作者:行者123 更新时间:2023-12-01 23:10:02 33 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to gracefuly try to load packages in Lua?

(1 个回答)


5年前关闭。




我目前正在使用 awesome运行不同发行版的各种 Linux 机器上的窗口管理器。
所有机器都使用相同的( lua )配置文件。

有些机器安装了 lua 文件系统( lfs ),而其他机器则没有。
我的配置最好使用 lfs ,但如果没有安装它,我想提供一个替代(次优)回退例程。

这是我的问题,很简单:

  • 我将如何捕捉 require(lfs) 引发的错误陈述?
  • 最佳答案

    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.
    end

    关于Lua - 需要回退/错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34965863/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com