aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system/ScriptSystem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/system/ScriptSystem.cpp')
-rw-r--r--src/crepe/system/ScriptSystem.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/crepe/system/ScriptSystem.cpp b/src/crepe/system/ScriptSystem.cpp
index ed0c7cc..4cce42b 100644
--- a/src/crepe/system/ScriptSystem.cpp
+++ b/src/crepe/system/ScriptSystem.cpp
@@ -32,10 +32,19 @@ void ScriptSystem::update(
if (script == nullptr) continue;
if (!script->initialized) {
- script->init();
- script->initialized = true;
+ try {
+ script->init();
+ script->initialized = true;
+ } catch (const exception & e) {
+ Log::logf(Log::Level::WARNING, "Uncaught exception in {} init: {}", behavior_script.name, e.what());
+ }
}
- (*script.*update_function)(delta_time);
+ try {
+ (*script.*update_function)(delta_time);
+ } catch (const exception & e) {
+ // TODO: print if it is fixed/frame update
+ Log::logf(Log::Level::WARNING, "Uncaught exception in {}: {}", behavior_script.name, e.what());
+ }
}
}