Как поймать исключение в Lua?Я использую LuaJava - PullRequest
2 голосов
/ 17 июня 2011

Я использую 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?

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Немного хака, но единственный способ исправить это - сделать что-то вроде этого:

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 бесполезен, поэтому я понятия не имею, что является конкретным исключением во время выполнения.

0 голосов
/ 29 июня 2011

LuaState.LdoFile не выдает никаких исключений.Один из подходов, который вы можете попробовать, - создать новый поток, чтобы попытаться запустить скрипт lua.

...