return HandleException(e);
} catch (const PlatformException* e) {
return HandleException(*e);
+ } catch (const std::exception& e) {
+ return HandleException(e);
} catch (...) {
return HandleException(UnknownException("Unknown exception"));
}
SendSyncReply(result.serialize().c_str());
}
+void ParsedInstance::HandleException(const std::exception& e) {
+ ScopeLogger();
+ LoggerE("std::exception: %s", e.what());
+ picojson::value result = picojson::value(picojson::object());
+ ReportError(common::PlatformResult{common::ErrorCode::ABORT_ERR, "An unknown internal error"},
+ &result.get<picojson::object>());
+ SendSyncReply(result.serialize().c_str());
+}
+
void ParsedInstance::HandleError(const PlatformResult& e) {
LoggerE("Error: %d", static_cast<int>(e.error_code()));
picojson::value result = picojson::value(picojson::object());
#include <sys/types.h>
+#include <exception>
#include <functional>
#include <map>
#include <mutex>
void HandleMessage(const char* msg, bool is_sync);
void HandleException(const PlatformException& ex);
+ void HandleException(const std::exception& e);
void HandleError(const PlatformResult& error);
std::map<std::string, NativeHandler> handler_map_;