Browse Source

Catch and log all uncaught exceptions propagated from simpleUpdate().

danielperano 2 năm trước cách đây
mục cha
commit
0eb6e1e090
1 tập tin đã thay đổi với 10 bổ sung1 xóa
  1. 10 1
      jme3-core/src/main/java/com/jme3/app/SimpleApplication.java

+ 10 - 1
jme3-core/src/main/java/com/jme3/app/SimpleApplication.java

@@ -49,6 +49,9 @@ import com.jme3.system.AppSettings;
 import com.jme3.system.JmeContext.Type;
 import com.jme3.system.JmeSystem;
 
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
 /**
  * <code>SimpleApplication</code> is the base class for all jME3 Applications.
  * <code>SimpleApplication</code> will display a statistics view
@@ -65,6 +68,8 @@ import com.jme3.system.JmeSystem;
  */
 public abstract class SimpleApplication extends LegacyApplication {
 
+    private static final Logger logger = Logger.getLogger(SimpleApplication.class.getName());
+
     public static final String INPUT_MAPPING_EXIT = "SIMPLEAPP_Exit";
     public static final String INPUT_MAPPING_CAMERA_POS = DebugKeysAppState.INPUT_MAPPING_CAMERA_POS;
     public static final String INPUT_MAPPING_MEMORY = DebugKeysAppState.INPUT_MAPPING_MEMORY;
@@ -258,7 +263,11 @@ public abstract class SimpleApplication extends LegacyApplication {
         stateManager.update(tpf);
 
         // simple update and root node
-        simpleUpdate(tpf);
+        try{
+            simpleUpdate(tpf);
+        }catch(Exception e){
+            logger.log(Level.WARNING, "Uncaught exception in simpleUpdate():", e);
+        }
 
         if (prof != null)
             prof.appStep(AppStep.SpatialUpdate);