lua学习之错误处理

错误处理

动态链接

  1. 在 Lua 中,动态链接被视为所有其他机制的母机制

  2. 因此利用它就可以动态地加载任何其他不在 Lua 中的机制

  3. package.loadlib 所需两个参数

    1. 库的完整路径
    2. 正确的函数名称
  4. loadlib 函数加载指定的库,并将其链接入 Lua

  5. 它没有调用库中的任何函数

  6. 而是将一个 C 编写的函数作为 Lua 函数返回

  7. 如果加载库或查找初始化函数时发生错误,会返回 nil 及一条错误信息

local path = "c:/lua/5.1/socket.so"
local f = package.loadlib(path, "luaopen_socket")
  1. 通常使用 require 来加载 C 程序库,这个函数会搜索指定的库
  2. 然后用 loadlib 加载库,并返回初始化函数
  3. 这个初始化函数应将库中提供的函数注册到 Lua 中,就类似 Lua 代码块中定义了其他函数

错误

  1. Lua 是一种扩展语言,通常嵌入在应用程序中

  2. 如果发生错误时如果直接崩溃或退出,那么我们就无法捕获到错误出现在哪里

  3. 因此 Lua 只要发生一个错误,就应该结束当前程序块并返回应用程序

  4. Lua 中任何未预期条件都会引发一个错误,如:

    1. 将两个非数字的值相加
    2. 对一个不是函数的值进行调用操作
    3. 索引一个不是 Table 的值
  5. 可以通过调用 error 函数,显式地引发发一个错误

    1. 需要传入一个错误消息的函数
do
    print("enter a number:")
    n = io.read("*number")
    if not n then 
        error("invalid input")
    end
end
 
-- 与上述代码等效
do
	print(&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值