[#2203] Handle SimulationException separately

This commit is contained in:
SiboVG 2023-05-07 22:51:41 +02:00
parent a0b9093957
commit 2365ae2cb4
2 changed files with 7 additions and 5 deletions

View File

@ -619,7 +619,7 @@ SimuRunDlg.msg.branchErrorOccurred = An error occurred during simulation branch
BasicEventSimulationEngine.error.noMotorsDefined = No motors defined in the simulation. BasicEventSimulationEngine.error.noMotorsDefined = No motors defined in the simulation.
BasicEventSimulationEngine.error.activeLengthZero = Active airframe has length 0 BasicEventSimulationEngine.error.activeLengthZero = Active airframe has length 0
BasicEventSimulationEngine.error.cantCalculateStability = Can't calculate stability BasicEventSimulationEngine.error.cantCalculateStability = Can't calculate stability
BasicEventSimulationEngine.error.earlyMotorBurnout = Motor burnout without liftoff. BasicEventSimulationEngine.error.earlyMotorBurnout = <html>Motor burnout without liftoff.<br>Use more (powerful) motors, or decrease the rocket mass.</html>
BasicEventSimulationEngine.error.noConfiguredIgnition = No motors configured to ignite at liftoff BasicEventSimulationEngine.error.noConfiguredIgnition = No motors configured to ignite at liftoff
BasicEventSimulationEngine.error.noIgnition = No motors ignited. BasicEventSimulationEngine.error.noIgnition = No motors ignited.
BasicEventSimulationEngine.error.NaNResult = Simulation resulted in not-a-number (NaN) value, please report a bug. BasicEventSimulationEngine.error.NaNResult = Simulation resulted in not-a-number (NaN) value, please report a bug.

View File

@ -100,8 +100,8 @@ public class BasicEventSimulationEngine implements SimulationEngine {
toSimulate.push(currentStatus); toSimulate.push(currentStatus);
SimulationListenerHelper.fireStartSimulation(currentStatus); SimulationListenerHelper.fireStartSimulation(currentStatus);
do{ do {
if( null == toSimulate.peek()){ if (toSimulate.peek() == null) {
break; break;
} }
currentStatus = toSimulate.pop(); currentStatus = toSimulate.pop();
@ -121,7 +121,7 @@ public class BasicEventSimulationEngine implements SimulationEngine {
if (dataBranch.getLength() == 0) { if (dataBranch.getLength() == 0) {
flightData.getWarningSet().add(Warning.EMPTY_BRANCH, dataBranch.getBranchName()); flightData.getWarningSet().add(Warning.EMPTY_BRANCH, dataBranch.getBranchName());
} }
}while( ! toSimulate.isEmpty()); } while (!toSimulate.isEmpty());
SimulationListenerHelper.fireEndSimulation(currentStatus, null); SimulationListenerHelper.fireEndSimulation(currentStatus, null);
@ -707,7 +707,7 @@ public class BasicEventSimulationEngine implements SimulationEngine {
} }
} }
private FlightData computeCoastTime() { private FlightData computeCoastTime() throws SimulationException {
try { try {
SimulationConditions conds = currentStatus.getSimulationConditions().clone(); SimulationConditions conds = currentStatus.getSimulationConditions().clone();
conds.getSimulationListenerList().add(OptimumCoastListener.INSTANCE); conds.getSimulationListenerList().add(OptimumCoastListener.INSTANCE);
@ -715,6 +715,8 @@ public class BasicEventSimulationEngine implements SimulationEngine {
FlightData d = e.simulate(conds); FlightData d = e.simulate(conds);
return d; return d;
} catch (SimulationException e) {
throw e;
} catch (Exception e) { } catch (Exception e) {
log.warn("Exception computing coast time: ", e); log.warn("Exception computing coast time: ", e);
return null; return null;