Skip to content

Python exceptions can't be handled from Lua scripts using pcall #45

Open
@kmike

Description

@kmike
>>> import lupa; lua = lupa.LuaRuntime()
>>> pcall = lua.eval("pcall")
>>> def py_func(): raise Exception("python exception")
... 
>>> lua_func = lua.eval("function () error('lua error') end")
>>> pcall(lua_func)
(False, u'[string "<python>"]:1: lua error')
>>> pcall(py_func)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "lupa/_lupa.pyx", line 507, in lupa._lupa._LuaObject.__call__ (lupa/_lupa.c:7743)
  File "lupa/_lupa.pyx", line 1245, in lupa._lupa.call_lua (lupa/_lupa.c:17287)
  File "lupa/_lupa.pyx", line 1252, in lupa._lupa.execute_lua_call (lupa/_lupa.c:17381)
  File "lupa/_lupa.pyx", line 231, in lupa._lupa.LuaRuntime.reraise_on_exception (lupa/_lupa.c:4144)
  File "lupa/_lupa.pyx", line 1386, in lupa._lupa.py_call_with_gil (lupa/_lupa.c:18673)
  File "lupa/_lupa.pyx", line 1352, in lupa._lupa.call_python (lupa/_lupa.c:18407)
  File "<stdin>", line 1, in py_func
Exception: python exception

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions