一个Java的try-catch类型题目
Given:11.staticvoidtest(){12.try{13.Stringx=null;14.System.out.print(x.toString()+"")...
Given:
11. static void test(){
12. try{
13. String x = null;
14. System.out.print(x.toString() + " ");
15. }
16. finally{System.out.print("finally ");}
17. }
18. public static void main(String[] args){
19. try{test();}
20. catch(Exception ex){System.out.print("exception ");}
21. }
What is the result?
A. null
B. finally
C. null finally
D. Compilation fails.
E. finally exception
答案:E
12行的try语句中,可以没有catch语句么?
20行的catch是在finally语句之后执行的么?
最后就是20行catch的错误是什么呢?因为x.toString()这个方法的问题么? 展开
11. static void test(){
12. try{
13. String x = null;
14. System.out.print(x.toString() + " ");
15. }
16. finally{System.out.print("finally ");}
17. }
18. public static void main(String[] args){
19. try{test();}
20. catch(Exception ex){System.out.print("exception ");}
21. }
What is the result?
A. null
B. finally
C. null finally
D. Compilation fails.
E. finally exception
答案:E
12行的try语句中,可以没有catch语句么?
20行的catch是在finally语句之后执行的么?
最后就是20行catch的错误是什么呢?因为x.toString()这个方法的问题么? 展开
4个回答
展开全部
try块后catch块不是必须的,但如果try块后没有catch块,就必须有finally块,也就是说try不能单独使用。
try块后不接catch,在框架设计上常出现,本方法若出现Exception时,自己不处理,抛出到框架专门处理Exception的特定位置去统一处理。
这个Exception会向上抛至调用处,如果仍没有catch就会再向上抛,如果程序一直没有处理,这个Exception最后会抛到jvm中,然后jvm就会报告一个错误。
你这里的代码,Exception会在main函数的try-catch中捕获并处理。
20行的catch是属于另一个try块的,与test函数中的finally无关。当test函数的try块中出现异常,就会直接跳进finally,finally块中的内容执行完后,再将产生的异常向调用者抛出,也就是main函数。在main函数的try-catch中捕获并处理。
也就打印了finally exception
最后被catch到的异常是NullPointerException空指针异常。
第13行 String x = null;
对象都不存在,第14行x.toString()就会产生一个NullPointerException。
try块后不接catch,在框架设计上常出现,本方法若出现Exception时,自己不处理,抛出到框架专门处理Exception的特定位置去统一处理。
这个Exception会向上抛至调用处,如果仍没有catch就会再向上抛,如果程序一直没有处理,这个Exception最后会抛到jvm中,然后jvm就会报告一个错误。
你这里的代码,Exception会在main函数的try-catch中捕获并处理。
20行的catch是属于另一个try块的,与test函数中的finally无关。当test函数的try块中出现异常,就会直接跳进finally,finally块中的内容执行完后,再将产生的异常向调用者抛出,也就是main函数。在main函数的try-catch中捕获并处理。
也就打印了finally exception
最后被catch到的异常是NullPointerException空指针异常。
第13行 String x = null;
对象都不存在,第14行x.toString()就会产生一个NullPointerException。
展开全部
12行的try语句可以不用catch.这里发生的空指针异常在20行的catch处理了。
20行的catch是在finally语句之后执行的么? 是的。
错误原因就是x.toString()这个方法,发生空指针异常。
x不能为null。
20行的catch是在finally语句之后执行的么? 是的。
错误原因就是x.toString()这个方法,发生空指针异常。
x不能为null。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有try一定要有catch,20行的错误就是2个cry对应1个catch,其他有没有错误 具体我也没把上面编译过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
12行的try一定要对应一个catch
在14行时x发生空指针异常,此时应该有catch接住这个异常而你写的没有
所以肯定出现运行错误
在14行时x发生空指针异常,此时应该有catch接住这个异常而你写的没有
所以肯定出现运行错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询