diff --git a/src/script/common/c_internal.cpp b/src/script/common/c_internal.cpp index 4c098f8d5..f811dd5d3 100644 --- a/src/script/common/c_internal.cpp +++ b/src/script/common/c_internal.cpp @@ -64,8 +64,10 @@ int script_exception_wrapper(lua_State *L, lua_CFunction f) return f(L); // Call wrapped function and return result. } catch (const char *s) { // Catch and convert exceptions. lua_pushstring(L, s); - } catch (LuaError& e) { + } catch (std::exception& e) { lua_pushstring(L, e.what()); + } catch (...) { + lua_pushliteral(L, "caught (...)"); } return lua_error(L); // Rethrow as a Lua error. }