mirror of
https://github.com/ThePhD/sol2.git
synced 2024-03-22 13:10:44 +08:00
eb1560d12a
improve exception documentation improve state_view default handlers add SAFE_PROPAGATION defines for compiling C++ as Lua add examples for automatic operator registrations and as_container fix tutorial code change tests to not throw unless absolutely necessary provide synchronization for file writing in tests provide thread safety around thread tests for REQUIRE add ostream automatic support change 5.1 compat to only kick in luaL_loadbufferx and luaL_loadfilex when LuaJIT is version 2.0.1 and lower
21 lines
1.0 KiB
ReStructuredText
21 lines
1.0 KiB
ReStructuredText
error
|
|
=====
|
|
*the single error/exception type*
|
|
|
|
|
|
.. code-block:: cpp
|
|
|
|
class error : public std::runtime_error {
|
|
public:
|
|
error(const std::string& str): std::runtime_error("lua: error: " + str) {}
|
|
};
|
|
|
|
|
|
.. note::
|
|
|
|
Please do not throw this error type yourself. It belongs to the library and we do some information appending at the front.
|
|
|
|
|
|
If an eror is thrown by Sol, it is going to be of this type. We use this in a single place: the default ``at_panic`` function we bind on construction of a :ref:`sol::state<set-panic>`. If you turn :doc:`off exceptions<../exceptions>`, the chances of you seeing this error are nil unless you specifically use it to pull errors out of things such as :doc:`sol::protected_function<protected_function>`.
|
|
|
|
As it derives from ``std::runtime_error``, which derives from ``std::exception``, you can catch it with a ``catch (const std::exception& )`` clause in your try/catch blocks. You can retrieve a string error from Lua (Lua pushes all its errors as string returns) by using this type with any of the get or lookup functions in Sol. |