我知道"msg"可以通过以下方式访问该字段
(.getMessage (ex-info "message" {:a 123}))
Run Code Online (Sandbox Code Playgroud)
但是,我只是没有看到ExceptionInfo具有msg字段的原因。Clojure 核心甚至没有提供适当的接口来访问该字段,例如(ex-msg (ex-info ...)).
有没有人有一个例子来展示如何使用这个msg字段?
在 Java 中,所有异常都从其扩展的基础 Throwable 类有一个 detailMessage 字段,并且 ExceptionInfo 类继承了它。JVM 将在抛出异常时显示此消息。
所以,ex-info 有一条消息来满足它上面的类层次结构,并以标准方式与 Java 和 JVM 一起工作。使用它的典型方法是使用标准的 Java 互操作调用,.getMessage就像您在问题中所做的那样。您还将看到它使用诸如pst.