(.a "")
正确地,在没有:phase的情况下抛出IllegalArgumentException。
然而,可以考虑到,这种IllegalArgumentException是“编译器式的”,它似乎与其他可能在更“运行时式”情况下抛出的IllegalArgumentException没有太大区别。
我的问题在于,作为一个工具制作者,如果没有这样的区别,所有IllegalArgumentException都将受到同样的处理,而用户会更希望对编译器式的给出更简洁的处理(例如,不显示堆栈跟踪)。
- 有没有推荐的方法来检查运行时异常,以确定它们是否表示从用户角度来看,“从一开始就是无效的代码”?
- 这个词是一个非正式的术语,用于描述类似于编译器的运行时异常
- 是否考虑过通过在Clojure编译器/运行时可以可靠地做到这一点时附加一个
:cause
(或:phase
、:ex-data
等)来使这个过程更容易?