Was ist ein Boxed Fehler in Scala?
Wenn ich meine Anwendung, der browser zeigt
[ExecutionException: Boxed Error]
Es sagt nichts über die Nummer der Zeile, etc.
In der Konsole habe ich folgende
! @6elaah0c8 - Internal server error, for (GET) [/testlearn] ->
play.api.Application$$anon$1: Execution exception[[ExecutionException: Boxed Error]]
at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.1]
at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$17$$anonfun$apply$24.apply(PlayDefaultUpstreamHandler.scala:326) [play_2.10.jar:2.1.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$17$$anonfun$apply$24.apply(PlayDefaultUpstreamHandler.scala:324) [play_2.10.jar:2.1.1]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.1]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.1]
java.util.concurrent.ExecutionException: Boxed Error
at scala.concurrent.impl.Promise$.resolver(Promise.scala:52) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Promise$.scala$concurrent$impl$Promise$$resolveTry(Promise.scala:44) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:116) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.Promise$class.complete(Promise.scala:55) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:58) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:23) [factorie-1.0.0-M4-jar-with-dependencies.jar:na]
Caused by: java.lang.AssertionError: assertion failed
at scala.Predef$.assert(Predef.scala:165) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.util.TraversableExtras$class.max2ByDouble(TraversableExtras.scala:95) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.package$$anon$2.max2ByDouble(package.scala:148) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.optimize.SampleRankExample.accumulateExampleInto(SampleRank.scala:31) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.optimize.OnlineTrainer$$anonfun$processExamples$3.apply(Trainer.scala:72) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.optimize.OnlineTrainer$$anonfun$processExamples$3.apply(Trainer.scala:63) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Boxed Error" wird in Scala mit der Reaktion auf einen
Error
geworfen wird, innerhalb einerFuture
. In Java, und somit Scala, Unterklassen von TypError
haben eine Besondere Bedeutung als Fatal Fehler. Sehen Unterschiede zwischen Ausnahme-und Fehler -. Kurz gesagt, die javadoc sagt:Anders als das werfen anderer
Throwable
s in Zukunft, wenn eine Unterklasse vonError
ausgelöst wird, wird die Standard-Scala-resolver wird wrap up dasError
imjava.util.concurrent.ExecutionException
mit der Nachricht string "Boxed Fehler", und vervollständigen Sie Ihre Versprechen auch mit einem Ausfall.Zitieren der futures-Dokumentation http://docs.scala-lang.org/overviews/core/futures.html w.r.t.
Error
geworfen:Wenn Sie wollen etwas besonderes zu tun mit dem Scheitern der ursprünglichen
Error
, die ausgelöst wurde, extrahiert werden kann (aber nicht in einer Weise besonders zugänglich pattern-matching), durchExecutionException#getCause()
Ich weiß nicht, das ist ein
Boxed Error
, sondern nach Ihren stacktrace, das root-problem wird von derfactorie
lib, aus dermax2Double
Methode in Zeile 95.Auszug aus dem Quellcode:
Es scheint, dass Ihre
Traversable
leer ist.