我了解可以通过
访问"msg"
字段
(.getMessage (ex-info "message" {:a 123}))
但是,我还没有看到ExceptionInfo
有msg
字段的原因。 Clojure核心甚至不提供访问该字段的适当接口,例如(ex-msg (ex-info ...))
。
是否有人举例说明如何使用此msg
字段?
答案 0 :(得分:4)
在Java中,所有异常扩展的基类Throwable类都有一个detailMessage字段,而ExceptionInfo类继承它。抛出异常时,JVM将显示此消息。
因此,ex-info有一条消息来满足它上面的类层次结构,并以标准方式使用Java和JVM。使用它的典型方法是使用标准的Java互操作调用.getMessage
,就像您在问题中所做的那样。您还会看到使用pst
之类的内容。