我正在使用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中捕获错误?
答案 0 :(得分:2)
有点黑客,但我能想到解决这个问题的唯一方法是做这样的事情:
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文档毫无价值,所以我不知道具体的运行时异常是什么。
答案 1 :(得分:0)
LuaState.LdoFile不会抛出任何异常。您可能尝试的一种方法是生成一个新线程来尝试运行lua脚本。