为什么我不能将404与(.getMessage e)的返回进行比较?

时间:2013-03-07 15:24:04

标签: clojure

我显然不明白(.getMessage e)返回什么,这可能就是为什么我在下面的代码块(let绑定的一部分)中显示以下问题。

accumail-results (try
  (client/get accumail-url {:query-params (into {} (first one-parsed-csv-vec))})
  (catch Exception e
  (println (.getMessage e))
  (if (not (= (.getMessage e) 404))
    (exit-sys (str accmail-except-str (.getMessage e) )))))

我已经尝试将值设置为字符串并进行比较,并且我得到空指针错误。那么,为什么我不能将(.getMessage e)的输出与404进行比较。我知道我从Web应用程序中获取了404.

1 个答案:

答案 0 :(得分:1)

e只是一个Java例外。 Exception.getMessage()返回一个字符串,它永远不会与数字404相等。

如果异常包装了HTTP错误响应代码,那么您将需要有关特定异常类型的更多专业知识,以了解如何从异常中获取代码。它可以作为Exception子类的方法使用,或者您可能必须从消息中解析它。如何获得错误代码取决于您使用的HTTP客户端以及它如何表示错误。