我希望我的網頁在出現函數異常時按預期行事,現在(openid/validate r)只有在用戶從/ login重定向時纔會返回值。但由於這是一個主頁,我希望它也可以在沒有問題的情況下看到。所以我想知道爲什麼「如果」沒有按照我的預期工作?Clojure - 異常處理
java.lang.NullPointerException at/
NullPointerException [no message]
tfs.routes.home/[fn]
home.clj, line 48
--> line 48
(if (openid/validate r)
因此,我期望(主頁r)執行而不是NullPointerException。
(openid/validate r)本身失敗並導致異常,因爲它沒有提供所需的參數,是原因嗎?如果是這樣,我該如何解決它?如果沒有,爲什麼我的(主頁r)函數沒有得到執行?
(if (openid/validate r)
(show-response (:params r))
(home-page r))
這將真正加入到這個問題,如果你能支持像「不工作」有錯誤,異常,代碼... – cfrick
@cfrick添加的錯誤主張。 –
你想了解'try/catch'。但是,您也想知道實際造成NPE的原因。 – schaueho