Как поймать исключение в 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 выполняет ошибку, JVM показывает ошибку, а не исключение. Как я могу поймать ошибку в Java?
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 бесполезен, поэтому я понятия не имею, что является конкретным исключением во время выполнения.
LuaState.LdoFile не выдает никаких исключений. Один из подходов, который вы можете попробовать, - создать новый поток, чтобы попытаться запустить скрипт lua.