zoukankan      html  css  js  c++  java
  • Lua笔记6 编译、执行与错误

    1. 编译

    dofile() 

    运行时编译:

    loadfile()
    loadstring(string)()  返回一个函数,并执行
    例: loadstring("print('hello world')")();      
    例2:i=100; local i=32; loadstring("print(i)");  ==> 100     // 在全局环境中编译,因此会引用全局的变量

    调用c代码:

    package.loadlib(path, functionName)


    2. 错误处理

    assert(1 > 2, "erroooooor");
    error("bug...")
    function errorFunction(args) if args == nil then error("params needed.") else print("ok.") end end
    local status, err = pcall(errorFunction, nil) ==> false // errorfunction 中的错误不会传递

    使用技巧:
    if (pcall(function()
    -- code
    end)) then
    -- code
    else
    -- error handle
    end
    function errorFunction(args) 
    if args == nil then
    error({msg = "params needed.", code=121}) -- error信息
    else
    print("ok.")
    end
    end
    function errorHandler(err)
    print(err.code) -- error code
    print(debug.traceback()) -- 调用栈信息
    end

    xpcall(errorFunction, errorHandler) -- 错误不会传递








  • 相关阅读:
    注册审核
    静态表单验证
    多条件查询
    0623TP框架联系
    0618框架 增删改练习
    php框架 数据添加
    0616框架查询
    0614空操作方法 空控制器 跨控制器调用 命名空间
    php 0613框架基础
    php查询
  • 原文地址:https://www.cnblogs.com/lavieenrose/p/2330744.html
Copyright © 2011-2022 走看看