为什么我不能比404(.getMessage E)的回报?

问题描述:

我显然没有理解什么(.getMessage E)的回报,这可能是为什么我有在代码(一个让绑定的一部分)以下块所表示的以下问题。为什么我不能比404(.getMessage E)的回报?

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)))))) 

我已经尝试将值设置为字符串和比较这些,我得到空指针错误。那么,我为什么不能跟404相比(.getMessage E)的输出,我知道我从我的web应用程序取回404。

+1

请张贴一个简单的,完整的例子清楚地表明这一问题,包括输入,输出和错误。删除依赖关系可以更容易地正确查找问题。你说'我已经尝试设置字符串的值并比较这些值,并且我得到空指针错误 - 请告诉我们;将此代码与发生的错误一起发布。另外,'.getMessage'不会返回一个String?这不会与数字相等。 – 2013-03-07 15:35:41

+0

你有代码。它在返回代码是404时执行exit-sys。我想知道为什么它不会进行比较。 – octopusgrabbus 2013-03-07 17:02:48

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

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