Я хочу поймать IllegalStateException в Scala. Следующий кодIllegalStateException не пойман
val scene = new SceneDock
вызывает исключение IllegalStateException, если приложение JavaFX ранее не запускалось. Этот конструктор из структуры JemmyFX.
Так я хочу, чтобы поймать это исключение следующим образом:
try{
val scene = new SceneDock
"running"}
catch{
case e: IllegalStateException => { "stopped" } }
Но это не работает. Результатом всегда является IllegalStateException: Toolkit не инициализирован, и он повторяется до тех пор, пока я не закончу приложение. Уже пытались поймать Exception и попробовали его с Java, но всегда один и тот же результат.
трассировки стека (это repeads, пока я не закончить приложение):
java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
at javafx.application.Platform.runLater(Platform.java:52)
at org.jemmy.fx.QueueExecutor.executeQueue(QueueExecutor.java:98)
at org.jemmy.action.AbstractExecutor.execute(AbstractExecutor.java:100)
at org.jemmy.fx.SceneList.getControls(SceneList.java:58)
at org.jemmy.lookup.PlainLookup.getChildren(PlainLookup.java:76)
at org.jemmy.lookup.AbstractLookup.refresh(AbstractLookup.java:172)
at org.jemmy.lookup.AbstractLookup$1.reached(AbstractLookup.java:141)
at org.jemmy.lookup.AbstractLookup$1.reached(AbstractLookup.java:137)
at org.jemmy.timing.Waiter.waitState(Waiter.java:78)
at org.jemmy.timing.Waiter.ensureState(Waiter.java:119)
at org.jemmy.lookup.AbstractLookup.wait(AbstractLookup.java:137)
at org.jemmy.lookup.AbstractLookup.get(AbstractLookup.java:250)
at org.jemmy.lookup.AbstractLookup.wrap(AbstractLookup.java:210)
at org.jemmy.dock.Dock.lookup(Dock.java:75)
at org.jemmy.fx.SceneDock.<init>(SceneDock.java:20)
at org.jemmy.fx.SceneDock.<init>(SceneDock.java:32)
at org.jemmy.fx.SceneDock.<init>(SceneDock.java:60)
at org.djemmysl.main.DjemmySL$class.applicationStatus(DjemmySL.scala:25)
at org.djemmysl.main.Main$.applicationStatus(Main.scala:3)
at org.djemmysl.main.Main$.main(Main.scala:6)
at org.djemmysl.main.Main.main(Main.scala)
java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
at javafx.application.Platform.runLater(Platform.java:52)
at org.jemmy.fx.QueueExecutor.executeQueue(QueueExecutor.java:98)
at org.jemmy.action.AbstractExecutor.execute(AbstractExecutor.java:100)
at org.jemmy.fx.SceneList.getControls(SceneList.java:58)
at org.jemmy.lookup.PlainLookup.getChildren(PlainLookup.java:76)
at org.jemmy.lookup.AbstractLookup.refresh(AbstractLookup.java:172)
at org.jemmy.lookup.AbstractLookup$1.reached(AbstractLookup.java:141)
at org.jemmy.lookup.AbstractLookup$1.reached(AbstractLookup.java:137)
at org.jemmy.timing.Waiter.waitState(Waiter.java:78)
at org.jemmy.timing.Waiter.ensureState(Waiter.java:119)
at org.jemmy.lookup.AbstractLookup.wait(AbstractLookup.java:137)
at org.jemmy.lookup.AbstractLookup.get(AbstractLookup.java:250)
at org.jemmy.lookup.AbstractLookup.wrap(AbstractLookup.java:210)
at org.jemmy.dock.Dock.lookup(Dock.java:75)
at org.jemmy.fx.SceneDock.<init>(SceneDock.java:20)
at org.jemmy.fx.SceneDock.<init>(SceneDock.java:32)
at org.jemmy.fx.SceneDock.<init>(SceneDock.java:60)
at org.djemmysl.main.DjemmySL$class.applicationStatus(DjemmySL.scala:25)
at org.djemmysl.main.Main$.applicationStatus(Main.scala:3)
at org.djemmysl.main.Main$.main(Main.scala:6)
at org.djemmysl.main.Main.main(Main.scala)
Может ли быть два класса IllegalStateException? (Надеюсь, нет) –
Нет, выход говорит, что это java.lang.IllegalStateException, поэтому я не думаю, что есть еще один;) – AKR
Можете ли вы добавить трассировку стека к вопросу? – iain