先决条件: 异常处理 , 最后,在try-catch中控制流 1) 以下程序的输出是什么?
public class Test { public static void main(String[] args) { try { System.out.printf( "1" ); int sum = 9 / 0 ; System.out.printf( "2" ); } catch (ArithmeticException e) { System.out.printf( "3" ); } catch (Exception e) { System.out.printf( "4" ); } finally { System.out.printf( "5" ); } } } |
a) 1325 b) 1345年 c) 1342年 d) 135
答案。 (d) 说明: 一旦try块中出现异常,执行将转移到 符合的 catch语句,不返回try block。一次只执行一个catch块。无论是否发生异常,始终执行finally块。 2) 以下程序的输出是什么?
public class Test { private void m1() { m2(); System.out.printf( "1" ); } private void m2() { m3(); System.out.printf( "2" ); } private void m3() { System.out.printf( "3" ); try { int sum = 4 / 0 ; System.out.printf( "4" ); } catch (ArithmeticException e) { System.out.printf( "5" ); } System.out.printf( "7" ); } public static void main(String[] args) { Test obj = new Test(); obj.m1(); } } |
a) 35721 b) 354721 c) 3521 d) 35 答案。 (a) 说明: 如果catch语句中处理了异常,则在执行与该异常对应的catch语句后,程序将继续正常执行。此外,当try块中发生异常时,try块中的其余程序不会执行。
3) 以下程序的输出是什么?
public class Test { public static void main(String[] args) { try { System.out.printf( "1" ); int data = 5 / 0 ; } catch (ArithmeticException e) { System.out.printf( "2" ); System.exit( 0 ); } finally { System.out.printf( "3" ); } System.out.printf( "4" ); } } |
a) 十二 b) 1234 c) 124 d) 123
答案。 (a) 说明: finally块中的代码未执行的唯一情况是系统。退出(0)在程序中显式调用。然后调用exit语句,程序终止,不再执行任何进一步的操作。 4) 以下程序的输出是什么?
public class Test { public static void main(String[] args) { try { System.out.printf( "1" ); int data = 5 / 0 ; } catch (ArithmeticException e) { Throwable obj = new Throwable( "Sample" ); try { throw obj; } catch (Throwable e1) { System.out.printf( "8" ); } } finally { System.out.printf( "3" ); } System.out.printf( "4" ); } } |
a) 编译错误 b) 运行时错误 c) 1834年 d) 134
答案。 (c) 说明: 在catch子句中可以抛出异常。这样做是为了在运行时更改异常类型。catch子句中的异常是通过创建类Throwable的实例引发的,如程序所示。
5) 以下程序的输出是什么?
import java.io.EOFException; import java.io.IOException; public class Test { public static void main(String[] args) { try { System.out.printf( "1" ); int value = 10 / 0 ; throw new IOException(); } catch (EOFException e) { System.out.printf( "2" ); } catch (ArithmeticException e) { System.out.printf( "3" ); } catch (NullPointerException e) { System.out.printf( "4" ); } catch (IOException e) { System.out.printf( "5" ); } catch (Exception e) { System.out.printf( "6" ); } } } |
a) 1346年 b) 136726 c) 136 d) 十三 答案。 (d) 说明: 在多捕获语句中,必须从更具体到更一般地列出例外。只执行一条catch语句,该语句最特定于发生的异常。
本文由 马扬克·库马尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。