C++ で書かれた次の lua_CFunction があります。
int my_function(lua_State* L) {
int x = 0;
try {
x = do_cpp_stuff_that_invokes_lua_API_as_well();
} catch(const std::exception& ex) {
lua_pushstring(ex.what().c_str());
lua_error(L);
}
return x;
}
私の質問は次のとおりです。
- tryブロックで?
- キャッチブロックで?
デストラクタに依存するもの (文字列など) を割り当てないことで、スタックに割り当てられた変数を処理します。それを行う必要がある場合、そのスコープ内のすべての lua 関数が pcall にラップされ、その pcall が失敗すると、私が投稿したこの関数に例外がスローされます。ただ、私は try-catch ブロックに関心があります。
どうもありがとう