如何在Lua中捕获异常?我正在使用LuaJava。

我正在使用luajava。 当lua执行出错时,我无法捕捉异常,然后jdk崩溃。 那么我该如何在lua中捕获异常?我只是像这样捕获错误(java代码):

LuaState ls = LuaStateFactory.newLuaState();
ls.openLibs();
String luaPath = "test.lua";
int isCompile = ls.LdoFile(luaPath);
if(isCompile==0){
    log.info(luaPath+" compile success!");
}else{
    log.info(luaPath+" script does not exist or compile failed!");
}

当lua出现内部错误时,我无法捕捉。 那么我该如何在lua中捕捉异常?

当lua执行出错时,JVM会显示一个错误,而不是异常。 我如何在Java中捕获这个错误?

点赞
用户783910
用户783910

有点不正规,但我能想到的解决办法就是像这样:

LuaState ls = LuaStateFactory.newLuaState();
ls.openLibs();
String luaPath = "test.lua";
int isCompile;
try {
    isCompile = ls.LdoFile(luaPath);
} catch (Exception ex) {
    ex.printStackTrace(System.err);
    isCompile = 1;
}
if(isCompile == 0){
    log.info(luaPath + "编译成功!");
}else{
    log.info(luaPath + "脚本不存在或编译失败!");
}

抱歉如果这不是你想要的,但是 LuaJava 文档没有用,所以我不知道具体的运行时异常是什么。

2011-06-22 01:06:38
用户301111
用户301111

LuaState.LdoFile 不会抛出任何异常。你可以尝试的一种方法是,创建一个新的线程来尝试运行 lua 脚本。

luaThread = threading.Thread(target=LuaState.LdoFile, args=(filename,))
luaThread.start()
2011-06-29 18:23:43