异常 – Groovy catch语句奇怪的行为
发布时间:2020-12-14 16:26:50 所属栏目:大数据 来源:网络整理
导读:我有以下2个groovy片段,应该做同样但但他们没有. try { throw new RuntimeException()} catch (IllegalStateException) { println("hello!")} 这个’你好
我有以下2个groovy片段,应该做同样但但他们没有.
try { throw new RuntimeException() } catch (IllegalStateException) { println("hello!") } 这个’你好!’的输出 try { throw new RuntimeException() } catch (IllegalStateException e) { println("hello!") } 而这个输出是一个意外的例外: Caught: java.lang.RuntimeException java.lang.RuntimeException at 2.run(2.groovy:2) 请注意唯一的区别是,在一个片段中,catch块中没有e参数. 我正在运行以下版本的groovy和JVM. groovy –version 这是预期的行为还是编译器中的错误? 解决方法
在第一种情况下,您将引入一个名为IllegalStateException的变量.它相当于:
try { throw new RuntimeException() } catch (Exception IllegalStateException) { println("hello!") } 在第二种情况下,您只捕获IllegalStateException,它不是抛出异常的类型,因此catch块不会捕获它. 它不等同于C#的含义,你只是想说你只想捕获IllegalStateException,但你不需要一个变量,因为你不关心异常对象. 请参阅Groovy style and language feature guidelines for Java developers文档中的“捕获任何异常”部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |