我正在使用 PyV8 并且我想禁止将 javascript 对象分配给我的 python 对象,因为PyV8 当前存在内存泄漏错误。我想出了这个代码:
def __setattr__(self, name, val):
if isinstance(val, (PyV8.JSFunction, PyV8.JSObject)):
raise ValueError("Can't put js objects on py values")
object.__setattr__(self, name, val)
但是,当我这样做时得到的回溯并不是很有帮助:
Traceback (most recent call last):
File "pyv8-bug-186.py", line 142, in <module>
""")
File "pyv8-bug-186.py", line 75, in run_case
obj = ctxt.eval(js)
ValueError: Can't put js objects on py values
特别是,它根本没有提供有关正在运行的 javascript 文件或行号是什么等信息。我看到了两个潜在的解决方案:
- 获取当前正在运行的 javascript 行号并将其包含在 python 异常中。
- 以某种方式将异常抛出到 javascript 中,以便 V8 显示错误,然后将包含行号。
我该怎么做呢?