| using namespace emscripten; | |
| int main() { | |
| val error; | |
| try { | |
| throw std::runtime_error("oopsie"); | |
| } catch (const std::runtime_error&) { | |
| error = val::take_ownership( | |
| emscripten::internal::_emval_from_current_cxa_exception()); | |
| } | |
| try { | |
| error.throw_(); | |
| } catch (const std::runtime_error& ex) { | |
| std::clog << "Caught1: " << ex.what() << '\n'; | |
| } | |
| try { | |
| throw std::runtime_error("oopsie"); | |
| } catch (const std::runtime_error&) { | |
| error = val::take_ownership( | |
| emscripten::internal::_emval_from_current_cxa_exception()); | |
| } | |
| try { | |
| throw std::runtime_error("this is bad"); | |
| } catch (const std::runtime_error&) { | |
| try { | |
| error.throw_(); // Rethrow oopsie | |
| } catch (const std::runtime_error& ex) { | |
| std::clog << "Caught2: " << ex.what() << '\n'; | |
| } | |
| } | |
| } | |