我显然不明白(.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.
答案 0 :(得分:1)
e
只是一个Java例外。 Exception.getMessage()返回一个字符串,它永远不会与数字404相等。
如果异常包装了HTTP错误响应代码,那么您将需要有关特定异常类型的更多专业知识,以了解如何从异常中获取代码。它可以作为Exception子类的方法使用,或者您可能必须从消息中解析它。如何获得错误代码取决于您使用的HTTP客户端以及它如何表示错误。