2

我正在使用 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 中的错误?

4

2 回答 2

2

有点hack,但我能想到的唯一解决方法是做这样的事情:

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+" compile success!");
}else{
    log.info(luaPath+" script does not exist or compile failed!");
}

抱歉,如果这不是您的要求,但 LuaJava 文档毫无价值,所以我不知道具体的运行时异常是什么。

于 2011-06-22T01:06:38.807 回答
0

LuaState.LdoFile 不会抛出任何异常。您可能会尝试的一种方法是生成一个新线程来尝试运行 lua 脚本。

于 2011-06-29T18:23:43.693 回答