diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2012-09-05 23:05:21 -0700 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2012-09-05 23:05:21 -0700 |
commit | 79303cf5227bb21c203daa130c73cc28702cdf8e (patch) | |
tree | 60f2efc279450ef3ea0a10ba0094a23afb6b82aa /src | |
parent | 3d23e3e1cb5a6c2a27c8f58b037b9000a7c85756 (diff) |
Better error handling on luaexeccells, so they can trigger their main co-routines. Also better display of said errors.
Diffstat (limited to 'src')
-rw-r--r-- | src/BLua.cc | 6 | ||||
-rw-r--r-- | src/LuaTask.cc | 7 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/BLua.cc b/src/BLua.cc index 4c52c7c..e9df8b7 100644 --- a/src/BLua.cc +++ b/src/BLua.cc @@ -759,7 +759,7 @@ void Balau::Lua::showstack(int level) { String t; if (n == 0) { - Printer::log(level, "Stack empty\n"); + Printer::log(level, "Stack empty"); return; } @@ -790,12 +790,12 @@ void Balau::Lua::showstack(int level) { t = "Unknown"; } - Printer::log(level, String(i) + ": " + t + "\n"); + Printer::log(level, String(i) + ": " + t); } } void Balau::Lua::showerror() { - Printer::log(M_ERROR, "Lua object: Got an LUA error, inspecting stack.\n"); + Printer::log(M_ERROR, "Lua object: Got an LUA error, inspecting stack."); showstack(M_ERROR); } diff --git a/src/LuaTask.cc b/src/LuaTask.cc index 7e0b256..12d4435 100644 --- a/src/LuaTask.cc +++ b/src/LuaTask.cc @@ -57,7 +57,12 @@ void Balau::LuaMainTask::Do() { } void Balau::LuaTask::Do() { - m_cell->run(L); + try { + m_cell->run(L); + } + catch (...) { + m_cell->setError(); + } if (m_cell->m_detached) delete m_cell; else |