try { throw new RuntimeException()} catch (IllegalStateException) { println("hello!")}
这个’你好!’的输出
try { throw new RuntimeException()} catch (IllegalStateException e) { println("hello!")}
而这个输出是一个意外的例外:
Caught: java.lang.RuntimeExceptionjava.lang.RuntimeException at 2.run(2.groovy:2)
请注意唯一的区别是,在一个片段中,catch块中没有e参数.
我正在运行以下版本的groovy和JVM.
groovy –version
Groovy版本:2.0.5 JVM:1.6.0_37供应商:Sun Microsystems Inc. *** 作系统:linux
这是预期的行为还是编译器中的错误?
谢谢
try { throw new RuntimeException()} catch (Exception IllegalStateException) { println("hello!")}
在第二种情况下,您只捕获IllegalStateException,它不是抛出异常的类型,因此catch块不会捕获它.
它不等同于C#的含义,你只是想说你只想捕获IllegalStateException,但你不需要一个变量,因为你不关心异常对象.
请参阅Groovy style and language feature guidelines for Java developers文档中的“捕获任何异常”部分.
总结以上是内存溢出为你收集整理的异常 – Groovy catch语句奇怪的行为全部内容,希望文章能够帮你解决异常 – Groovy catch语句奇怪的行为所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)