我使用以下 Clojure 代码.ping
从riak-java-client包装。但我不喜欢这样直率地捕捉异常:
(ns myapp.riak
(:import [com.basho.riak.client IRiakClient]))
(set! *warn-on-reflection* true)
(defn alive?
"Is Riak client alive? Returns true or false, unlike `.ping`."
[^IRiakClient client]
(try
(.ping client) true
(catch Exception e false)))
我试着抓住这些:
com.basho.riak.client.RiakException
java.net.ConnectException
java.io.IOException
但这些(单独或组合)都不起作用。
我究竟做错了什么?
美国东部时间下午 3:56 更新:我正在使用RiakFactory/httpClient
,以防万一。
美国东部时间下午 4:13 更新:一个有趣的方面是调试过程。在调试时,ConnectException
出现在 REPL 中。但是RiakIORuntimeException
——下面的解决方案的一部分——没有出现。我想知道为什么不。