上下文:我正在编写一个Cascalog作业,以便在Amazon EMR中运行。Cascalog是一个基于clojure的库,用于运行MapReduce。当作业由于某种奇怪的类加载异常而失败时。
在作业中,我使用了一个名为geocoder的库,它是一个基于clojure的geoip查找库。特别是,我使用的是库中查看maxmind GeoLiteCity.dat文件的部分。我发现我的代码中导致作业失败的部分是使用地理编码库的部分。**
最奇怪的是,虽然删除这部分代码会导致作业成功,但注释掉却不会……想知道有没有人知道发生了什么事?
**我使用地理编码库的方式如下
(ns utils.geoip (:使用geocoder.core))
然后我的工作就需要上面的内容
(ns myjob (:需要utils.geoip :as geoip))
发布于 2012-05-18 23:01:57
你的问题的答案可能取决于你使用哪种技术来注释掉有问题的代码?也就是说,您使用的是;还是多行(comment foo)宏?
我这样问的原因是,虽然用;注释掉的代码被完全忽略了,但comment宏需要一个语法正确的S表达式作为主体;因此,一个简单的语法错误可能会导致您认为被忽略的代码中出现意外错误。
换句话说:注释宏不允许任意文本。
https://stackoverflow.com/questions/10648485
复制相似问题