[#1817] Add extra error information on simulation listener instantiation

This commit is contained in:
SiboVG 2022-11-14 13:49:44 +01:00
parent 8dd2d00ca5
commit c5b0271db7
2 changed files with 10 additions and 3 deletions

View File

@ -470,6 +470,8 @@ SimulationExtension.javacode.name = Java code
SimulationExtension.javacode.name.none = none
SimulationExtension.javacode.desc = Add a custom SimulationListener to the simulation
SimulationExtension.javacode.className = Fully-qualified Java class name:
SimulationExtension.javacode.classnotfound = Could not find class
SimulationExtension.javacode.couldnotinstantiate = <html>Could not instantiate class %s.<br>Does it have a zero-argument, or @Inject constructor?</html>
SimulationExtension.scripting.name = {language} script
SimulationExtension.scripting.desc = Extend OpenRocket simulations by custom scripts.

View File

@ -1,5 +1,6 @@
package net.sf.openrocket.simulation.extension.impl;
import com.google.inject.ConfigurationException;
import net.sf.openrocket.simulation.SimulationConditions;
import net.sf.openrocket.simulation.exception.SimulationException;
import net.sf.openrocket.simulation.extension.AbstractSimulationExtension;
@ -23,11 +24,15 @@ public class JavaCode extends AbstractSimulationExtension {
if (!SimulationListener.class.isAssignableFrom(clazz)) {
throw new SimulationException("Class " + className + " does not implement SimulationListener");
}
SimulationListener listener = (SimulationListener) injector.getInstance(clazz);
conditions.getSimulationListenerList().add(listener);
try {
SimulationListener listener = (SimulationListener) injector.getInstance(clazz);
conditions.getSimulationListenerList().add(listener);
} catch (ConfigurationException e) {
throw new SimulationException(String.format(trans.get("SimulationExtension.javacode.couldnotinstantiate"), className), e);
}
}
} catch (ClassNotFoundException e) {
throw new SimulationException("Could not find class " + className);
throw new SimulationException(trans.get("SimulationExtension.javacode.classnotfound") + " " + className);
}
}