-1

我显然不明白 (.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。

4

1 回答 1

1

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

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

于 2013-03-07T15:37:58.250 回答