欢迎!请在关于页面了解更多此平台的信息。
Java 7 及更高版本支持多catch异常(http://www.oracle.com/technetwork/articles/java/java7exceptions-486908.html)。如果Clojure也支持它们,将会很方便,以防止捕获像Exception这样的异常,然后编写手动逻辑来检查异常类型,或在多个catch块中重复该逻辑。
这个特性的可能语法可能是
`(try (fn-that-throws)
`
(catch (UnknownHostException NoRouteToHostException) e (go-offline)))
这个特性的先例是一个 * } 宏: https://gist.github.com/Gonzih/5814945.
需要处理的细微之处是
{quote}编辑:请注意,在Java 7中,如果ExceptionB是从ExceptionA继承(直接或间接继承),则不能同时捕获ExceptionA 和 ExceptionB。编译器会报错:异常ExceptionB 已经被替代的异常ExceptionA捕获了。 - http://stackoverflow.com/a/3495968/826486{quote}
我尝试搜索是否有类似的问题,但得到了大量的结果。但在前几页我没有看到有任何内容。