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

ちょっとしたハックですが、これを修正するために私が考えることができる唯一の方法は、次のようなことです:

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 は例外をスローしません。1 つの方法として、新しいスレッドを作成して lua スクリプトの実行を試みる方法があります。

于 2011-06-29T18:23:43.693 に答える