我使用SparkJava,似乎在路由中拋出的異常不會顯示在控制檯中,除非我明確地捕獲它們。異常沒有顯示在控制檯,除非明確捕獲
例如,給定
Spark.post("/lookup", this::lookup);
和
private String lookup(Request req, Response res) {
// some stuff
return json.toString();
}
如果// some stuff
拋出一個異常,沒有出現在控制檯中。但是,如果我明確地捕獲並打印該異常,則會按預期將其打印到控制檯。
private String lookup(Request req, Response res) {
try {
// some stuff
} catch(Exception e) {e.printStackTrace();}
return json.toString();
}
這使我相信,在路由調用堆棧的更深處,所有異常都會被捕獲和隱藏。
正如你可以想象的,這種行爲導致一些相當令人沮喪的調試。有什麼辦法可以讓所有的異常總是顯示在控制檯中?
嘗試搜索「Java的火花吞嚥異常」 – Carcigenicate
你心裏有一個特定的鏈接?我嘗試過搜索,但找不到任何東西(也許我只是一個糟糕的搜索者:() – misaka
不,我只知道圖書館吞併異常並不罕見,例如,我使用Quil庫(用於Clojure) ,並且默認情況下它會吞下所有的異常,但是它有一個選項,但是我們從來沒有使用過SparkJava,但是如果這是吞嚥異常,它可能會有一個設置,對不起,我無法提供更多幫助 – Carcigenicate