2024 Clojure 状况调查中分享您的想法!

欢迎!有关此页面的工作方式,请参阅关于页面,了解更多信息。

0
tools.namespace
我使用 {{org.clojure/tools.namespace "0.3.0-alpha4"}} 来检测任意对象之间的循环依赖。它运行良好,但在某种情况下,错误信息可以更加详细。


{:type clojure.lang.ExceptionInfo
   :message "x 和 y 之间存在循环依赖."
   :data {:reason :clojure.tools.namespace.dependency/circular-dependency, :node x, :dependency y}
   :at [clojure.core$ex_info invokeStatic "core.clj" 4617]}


{{x}} 和 {{y}} 是被隐藏的数据。

问题是,x 或 y 都不是直接依赖于对方,而是通过间接路径。

如果异常本身能够告知完整的错误路径,而不仅仅是开始和结束,那将非常有用。

期望的异常示例

 
 :data {:reason :clojure.tools.namespace.dependency/circular-dependency, :node x, :dependency y, :path [x a b c y]}
 

1 个答案

0
参考:https://clojure.atlassian.net/browse/TNS-49(由 alex+import 报告)
...