2017-02-19 5 views
0

Ich benutze SparkJava und es scheint, dass in routen geworfene Ausnahmen nicht in der Konsole angezeigt werden, wenn ich sie nicht explizit abfange.Ausnahmen werden nicht in der Konsole angezeigt, außer explizit abgefangen

Zum Beispiel gegeben

Spark.post("/lookup", this::lookup); 

und

private String lookup(Request req, Response res) { 
    // some stuff 
    return json.toString(); 
} 

Wenn // some stuff eine Ausnahme auslöst, erscheint nichts in der Konsole. Aber wenn ich die Ausnahme explizit abfange und drucke, wird sie wie erwartet in der Konsole ausgegeben.

Das führt mich zu der Annahme, dass irgendwo weiter oben in der Route Callstack alle Ausnahmen gefangen und versteckt werden.

Wie Sie sich vorstellen können, führt dieses Verhalten zu einem eher frustrierenden Debugging. Gibt es eine Möglichkeit, es so zu machen, dass alle Ausnahmen immer in der Konsole angezeigt werden?

+0

Versuchen für „Java Funken Ausnahmen beim Schlucken“ gesucht – Carcigenicate

+0

Haben Sie einen bestimmten Link im Sinne? Ich habe versucht zu suchen, aber ich konnte nichts finden (vielleicht bin ich nur ein schlechter Sucher :() – misaka

+0

Nein, ich weiß nur, dass es nicht ungewöhnlich ist, dass Bibliotheken Ausnahmen verschlucken. Zum Beispiel verwende ich die Quil-Bibliothek (für Clojure) , und standardmäßig alle Ausnahmen verschluckt. Es hat jedoch eine Option, Ausnahmen wie üblich zuzulassen. Ich habe SparkJava nie benutzt, aber wenn es Ausnahmen verschluckt, kann es eine Einstellung haben. Tut mir leid, ich kann nicht mehr helfen – Carcigenicate

Antwort

2

in der Hauptklasse, vor allen Routen, fügen Sie diese:

exception(Exception.class, (exception, request, response) -> { 
     exception.printStackTrace(); 
    }); 

Jeder wird von Ihrem Anwendungscode gefangen nicht anders Ausnahme nun auf die Konsole abgeladen werden.

(IMO Funke soll dies standardmäßig tun ...)

+0

Vielen Dank! Ich hatte mich zu einer hässlichen Lösung gewendet, alle meine Routen in einer Wrapperklasse zu kleben, die irgendwelche Ausnahmen enthielt, das sieht viel schöner aus. Absolut stimmen zu, dass dies Standard sein sollte. – misaka

Verwandte Themen