Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Functions | |
bool | IsPending (const ScriptRequest &rq) |
bool | CatchPending (const ScriptRequest &rq) |
Log and then clear the current pending exception. More... | |
void | Raise (const ScriptRequest &rq, const char *format,...) |
Raise a JS exception from C++ code. More... | |
bool ScriptException::CatchPending | ( | const ScriptRequest & | rq | ) |
Log and then clear the current pending exception.
This function should always be called after calling a JS script (or anything that can throw JS errors, such as structured clones), in case that script doesn't catch an exception thrown during its execution. If no exception is pending, this does nothing. Note that JS code that wants to throw errors should throw new Error(...), otherwise the stack cannot be used.
bool ScriptException::IsPending | ( | const ScriptRequest & | rq | ) |
void ScriptException::Raise | ( | const ScriptRequest & | rq, |
const char * | format, | ||
... | |||
) |
Raise a JS exception from C++ code.
This is only really relevant in JSNative functions that don't use ObjectOpResult, as the latter overwrites the pending exception. Prefer either simply logging an error if you know a stack-trace will be raised elsewhere.