异常_解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 2 3 4 5 6 7 8 9 public static int func (){ try{ return 1; }catch (Exception e){ return 2; }finally{ return 3; } }
的输出结果是() A:10 数组下标越界 程序结束 B:10 程序结束 C:数组下标越界 程序结束 D:程序结束 参考答案: C 解析: 题目中a的长度为5,而for循环循环6次,当执行sum+=a[5]时程序出现异常, 被catch(java.lang.ArrayIndexOutOfBoundsException e)捕获,执行该方法体里的操作, 输出“数组下标越界”;finally语句块是一定会被执行的语句块,无论是否出现异常; 所以答案为C 9. 下面代码运行结果是()
7. 下面代码的输出结果是什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class ZeroTest { public static void main(String[] args) { try{ int i = 100 / 0; System.out.print(i); }catch(Exception e){ System.out.print(1); throw new RuntimeException(); }finally{ System.out.print(2); } System.out.print(3); } }
8. 研究下面的JAVA代码
4/10
2017/5/7
8. 研究下面的JAVA代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
蓝桥密卷
public class TestException { /** * @param args */ public static void main(String[] args) { int a[] = { 0, 1, 2, 3, 4 }; int sum = 0; try { for (int i = 0; i < 6; i++) { sum += a[i]; } System.out.println("sum=" + sum); } catch (java.lang.ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界"); } finally { System.out.println("程序结束"); } } }
2017/5/7
蓝桥密卷
《异常》
Βιβλιοθήκη Baidu注意事项: 1.考试时间为60分钟。 2.本试卷满分38分。 3.考试结束后请将试卷答案提交。
一、 单选题 (每小题2分,共28分)
1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public class TestException { /** * @param args */ public static void main(String[] args) { int a[] = {0,1,2,3,4}; int sum=0; try { for(int i=0;i<6;i++) { sum+=a[i]; } System.out.println("sum="+sum); } catch(java.lang.ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界"); } finally { System.out.println("程序结束"); } } }
A:出错 B:342 C:34234 D:3423 参考答案: D 解析: 本题注意点: 1. 静态变量为所有该类的对象所共享 2. try里没有异常时不执行catch语句块,try里有异常时执行catch语句块(此时除了finally语句块,其余内容不再 执行),无论有没有异常,finally语句块都执行。 6. 下面关于java.lang.Exception类的说法正确的是() A:继承自Throwable
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0 3/10
2017/5/7
蓝桥密卷
B:继承自Serializable C:继承自Error D:是异常体系的最终父类,只继承Object 参考答案: A 解析:
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
2/10
2017/5/7
蓝桥密卷
System.out.print("finally"); }:
A:try,finally B:try, C: try, catch,finally D:try,catch, 参考答案: A 解析: 题目中打印 try,没有任何异常,遇到return语句,先执行finally再执行return语句,所以选A 5. 下面程序的输出结果是?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package algorithms.com.guan.javajicu; public class TestDemo { public static String output =""; public static void foo(int i){ try{ if(i == 1){ throw new Exception(); } }catch(Exception e){ output += "2"; return ; }finally{ output += "3"; } output += "4"; } public static void main(String[] args) { foo(0); foo(1); System.out.println(output); } }
A:1 B:2 C:3 D:编译错误 参考答案: C 解析: finally语句在try或catch中的return语句执行之后、返回之前执行,且finally里的修改语句不能影响try或catch中 return已经确定的返回值,若finally里也有return语句则覆盖try或catch中的return语句直接返回。 4. 以下代码片段的的输出结果是: try{ System.out.print("try,"); return; } catch(Exception e){ System.out.print("catch,"); } finally { System.out.print("finally");
A:3 B:123 C:1 D:12 参考答案: D 解析: 首先try块中会在运行时抛出除以0的异常,因此程序进入catch块执行打印1,下一句抛出了一个运行时异常,但由 于有finally的存在,要先执行finally中的打印任务,之后异常被抛出,程序在此处中止 因此结果为:12
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
5/10
2017/5/7
16
}
蓝桥密卷
A:finally 语句块 和是:43 B:和是:43 finally 语句块 C:catch语句块 和是:43 D:编译异常 参考答案: A 解析: 无论try语句块内是否出现异常,都会执行finally语句块,且finally语句块的内容在放的return语句之前执行 10.
A:10 数组下标越界,程序结束 B:10 程序结束 C:数组下标越界,程序结束 D:程序结束 参考答案: C 解析: 数组a的长度是5,for循环会循环六次,从而出现数组越界异常,该异常被 catch(java.lang.ArrayIndexOutOfBoundsException e)捕获,输出“数组越界”,最后执行finally语句块,输出“程序结 束” 2. 下面有关JAVA异常类的描述,说法错误的是? A:异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOExcepti on等继承Exception B:非RuntimeException一般是程序错误(或缺陷),其必须被 trycatch语句块所捕获 C: Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉 D: RuntimeException包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 trycatch语句块捕获 参考答案:
public class Demo{ 1 public int add(int a,int b){ 2 try{ 3 return a+b; 4 }catch(Exception e){ 5 System.out.print(“catch 语句块”); 6 }finally{ 7 System.out.print(“finally 语句块”); 8 } 9 return 0; 10 } 11 public static void main(String[] args){ 12 Demo demo=new Demo(); 13 System.out.println(“和是:”+demo.add(9,34)); 14 } 15 } 16 http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
D
1/10
2017/5/7
蓝桥密卷
D 解析: 1. 异常体系结构:
2.运行时异常并不是必须用trycatch捕捉,检查时异常才是必须被trycatch捕捉的 3. 下面函数将返回?
以下关于异常的说法正确的是:()
A: B: C: catch D: 参考答案: D 解析:
的输出结果是() A:10 数组下标越界 程序结束 B:10 程序结束 C:数组下标越界 程序结束 D:程序结束 参考答案: C 解析: 题目中a的长度为5,而for循环循环6次,当执行sum+=a[5]时程序出现异常, 被catch(java.lang.ArrayIndexOutOfBoundsException e)捕获,执行该方法体里的操作, 输出“数组下标越界”;finally语句块是一定会被执行的语句块,无论是否出现异常; 所以答案为C 9. 下面代码运行结果是()
7. 下面代码的输出结果是什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class ZeroTest { public static void main(String[] args) { try{ int i = 100 / 0; System.out.print(i); }catch(Exception e){ System.out.print(1); throw new RuntimeException(); }finally{ System.out.print(2); } System.out.print(3); } }
8. 研究下面的JAVA代码
4/10
2017/5/7
8. 研究下面的JAVA代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
蓝桥密卷
public class TestException { /** * @param args */ public static void main(String[] args) { int a[] = { 0, 1, 2, 3, 4 }; int sum = 0; try { for (int i = 0; i < 6; i++) { sum += a[i]; } System.out.println("sum=" + sum); } catch (java.lang.ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界"); } finally { System.out.println("程序结束"); } } }
2017/5/7
蓝桥密卷
《异常》
Βιβλιοθήκη Baidu注意事项: 1.考试时间为60分钟。 2.本试卷满分38分。 3.考试结束后请将试卷答案提交。
一、 单选题 (每小题2分,共28分)
1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public class TestException { /** * @param args */ public static void main(String[] args) { int a[] = {0,1,2,3,4}; int sum=0; try { for(int i=0;i<6;i++) { sum+=a[i]; } System.out.println("sum="+sum); } catch(java.lang.ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界"); } finally { System.out.println("程序结束"); } } }
A:出错 B:342 C:34234 D:3423 参考答案: D 解析: 本题注意点: 1. 静态变量为所有该类的对象所共享 2. try里没有异常时不执行catch语句块,try里有异常时执行catch语句块(此时除了finally语句块,其余内容不再 执行),无论有没有异常,finally语句块都执行。 6. 下面关于java.lang.Exception类的说法正确的是() A:继承自Throwable
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0 3/10
2017/5/7
蓝桥密卷
B:继承自Serializable C:继承自Error D:是异常体系的最终父类,只继承Object 参考答案: A 解析:
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
2/10
2017/5/7
蓝桥密卷
System.out.print("finally"); }:
A:try,finally B:try, C: try, catch,finally D:try,catch, 参考答案: A 解析: 题目中打印 try,没有任何异常,遇到return语句,先执行finally再执行return语句,所以选A 5. 下面程序的输出结果是?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package algorithms.com.guan.javajicu; public class TestDemo { public static String output =""; public static void foo(int i){ try{ if(i == 1){ throw new Exception(); } }catch(Exception e){ output += "2"; return ; }finally{ output += "3"; } output += "4"; } public static void main(String[] args) { foo(0); foo(1); System.out.println(output); } }
A:1 B:2 C:3 D:编译错误 参考答案: C 解析: finally语句在try或catch中的return语句执行之后、返回之前执行,且finally里的修改语句不能影响try或catch中 return已经确定的返回值,若finally里也有return语句则覆盖try或catch中的return语句直接返回。 4. 以下代码片段的的输出结果是: try{ System.out.print("try,"); return; } catch(Exception e){ System.out.print("catch,"); } finally { System.out.print("finally");
A:3 B:123 C:1 D:12 参考答案: D 解析: 首先try块中会在运行时抛出除以0的异常,因此程序进入catch块执行打印1,下一句抛出了一个运行时异常,但由 于有finally的存在,要先执行finally中的打印任务,之后异常被抛出,程序在此处中止 因此结果为:12
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
5/10
2017/5/7
16
}
蓝桥密卷
A:finally 语句块 和是:43 B:和是:43 finally 语句块 C:catch语句块 和是:43 D:编译异常 参考答案: A 解析: 无论try语句块内是否出现异常,都会执行finally语句块,且finally语句块的内容在放的return语句之前执行 10.
A:10 数组下标越界,程序结束 B:10 程序结束 C:数组下标越界,程序结束 D:程序结束 参考答案: C 解析: 数组a的长度是5,for循环会循环六次,从而出现数组越界异常,该异常被 catch(java.lang.ArrayIndexOutOfBoundsException e)捕获,输出“数组越界”,最后执行finally语句块,输出“程序结 束” 2. 下面有关JAVA异常类的描述,说法错误的是? A:异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOExcepti on等继承Exception B:非RuntimeException一般是程序错误(或缺陷),其必须被 trycatch语句块所捕获 C: Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉 D: RuntimeException包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 trycatch语句块捕获 参考答案:
public class Demo{ 1 public int add(int a,int b){ 2 try{ 3 return a+b; 4 }catch(Exception e){ 5 System.out.print(“catch 语句块”); 6 }finally{ 7 System.out.print(“finally 语句块”); 8 } 9 return 0; 10 } 11 public static void main(String[] args){ 12 Demo demo=new Demo(); 13 System.out.println(“和是:”+demo.add(9,34)); 14 } 15 } 16 http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
http://lemon.lanqiao.org:8080/exam/paper/paperDetails.do#section0
D
1/10
2017/5/7
蓝桥密卷
D 解析: 1. 异常体系结构:
2.运行时异常并不是必须用trycatch捕捉,检查时异常才是必须被trycatch捕捉的 3. 下面函数将返回?
以下关于异常的说法正确的是:()
A: B: C: catch D: 参考答案: D 解析: