第四章练习题(异常)
1.Java语言中异常的分类是哪项?
A.运行时异常和异常
B.受检异常和非受检异常
C.错误和异常
D.错误和运行时异常
2.所有异常的父类是哪项?
A. Throwable
B. Error
C. RuntimeException
D. Exception
3.关于try...catch...finally结构,描述正确的是哪项? A.可以有多个catch
(选两项)
B.只能有一个catch
C.可以没有catch
D.finally必须有
4.下列属于非受检异常的是哪项?
A.SQLException
B. IOException
C. NullPointerException
D.OutOfMemoryError
5.假设有自定义异常类ServiceException,那么抛出该异常的语句正
确的是
哪项?
A. raise ServiceException
B. throw new ServiceException()
C. throw ServiceException
D. throws ServiceException
1-48
----------------------- Page 49-----------------------
6.在方法的声明中,要求该方法必须抛出异常时使用哪个关键字?
A. throw
B. catch
C. finally
D. throws
7.现有:
1. class Number{
2. public static void main(String [] aras) {
3. try {
4. System.out.print (Integer.parselnt (\"forty\"));
5. } catch (RuntimeException r) {
6. System.out.print (\"runtime\");
7. } catch (NumberFormatException e) {
8. system..ut.print(\"number\");
9. }
10. }
11. }
结果是什么?
A. number
B. runtime
C. forty number
D.编译失败
8.现有:
9. void topGo() {
10. try {
11. middleGo();
12. ) catch (Exception e) {
13. System.out.print(\"catch\");
1 4. }
15. }
1 6. void middleGo() throws Exception {
17. go();
1 8. system.out.print(\"late middle\");
1 9. }
2. void go() throws ExceptiOn {
21. throw new Exception();
22. }
1-49
----------------------- Page 50-----------------------
如果调用 topGo () ,则结果为:
A. late middle
B. catch
C. late middle catch
D. catch Iate middle
9.现有
1. class Calc {
2. public static void main(String [] args) {
3. try {
4. int x = Integer.parselnt (\"42a\") ;
5. //insert code here
6. System.out.print (\"oops\");
7. }
8. }
9. }
下面哪两行分别插入到第五行,会导致输 \"oops\" ? (选两项)
A. } catch (IllegalArgumentException e) {
B. } catch (IllegalStateException c) {
C. } catch (NumbelFormatException n) {
D. } catch (ClassCastException c) {
10.现有:
1. class Flow {
2. public static void main(String [] args) t
3. try {
4 . System. out .print (\"before\") ;
5 . doRiskyThing ( ) ;
6. System.out.print (\"after \") ;
7. } catch (Exception fe) {
8. System.out.print (\"catch\") ;
9. }
10 . System. out .println ( \" done\") ;
11. }
12. public static void doRiskyThing() throws Exception{
13. // this code returns unless it throws an Exception
}}
可能会产生哪两项结果 ?(选两项)
A. before catch
B. before after done
C. before catch done
D. before after catch
1-50
----------------------- Page 51-----------------------
11.现有:
1. class Birds {
2. public static void main (String [] args) {
3. try {
4. throw new Exception () ;
5. } catch (Exception e) {
6. try {
7. throw new Exception () ;
8. } catch (Exception e2) { System.out.print (\"inner
\"); }
9. System. out.print ( \"middle\" ) ;
10. }
11. System.out.print (\"outer\") ;
12. }
13. }
A. inner outer
B. middle outer
C. inner middle outer
D .编译失败
12.现有:
1. class Parser extends Utilis {
2. public static void main (String [] args) {
3. try { System. out.print (new Parser().getlnt(\"42\"));
4. } catch (NumberFormatException n) {
5 . System.out .println ( \"NFExc\" ) ; }
6. }
7. int getlnt (String arg) throws NumberFormatException{
8. return Integer.parselnt (arg) ;
9. }
10. }
11. class Utils {
12. int getlnt (String arg) { return 42; }
13. }
绐果为 :
A. NFExc
B. 42
C. 42NFExc
D..编译失败
1-51
----------------------- Page 52-----------------------
13.现有:
1. class Parser extends Utils (
2.public static void main (String[] args) {
3.try{System.out.print (new Parser().getlnt(\"42\"));
4. } catch (Exception e) {
5.System.out.println(\"Exc\"); }
6. }
7.int getlnt (String arg) throws Exception (
8.return Integer.parselnt (arg); 9. }
10. }
11. class Utils {
12. int getlnt (String arg) 13. }
结果为:
A. 42
B. Exc
C. 42Exc
{return 42; }
D.编译失败
14.现有:
1. class Propeller2 {
2. pulolic static void main (String[]args)//add code here?
3. { new Propeller2().topGo(); }
4.
5.void topGo() //add code here?
6. { middleGo(); }
7.
8.void middleGo() //add code here?
9. { go(); System.out.println (\"late middle\"); }
void go() //add code here?
12. {throw new Exception(); }
13. }
为使代码通过编译,需要在哪一行加入声明throws Exception?
A.只在第11行
B.在第8行和第11行
C.在第5行、第8 行和第11行
D.在第2行、第5 行、第8行和第11行
1-52
----------------------- Page 53-----------------------
15.现有
1. class Parser extends Utils {
2. public static void main (String [] args) {
3. try { System.out.print (new Parser () .getlnt (\"42\"))
4. } catch (Exception e) {
5. System.out.println (\"Exc\") ; }
6. }
7. int getlnt (String arg) throws Exception {
8. return Integer.parselnt (arg) ;
9. }
10. }
11. class Utils {
12. int getlnt () { return 42; }
13. }
结果是什么?
A. 42Exc
B. Exc
C. 42
D.编译失败
1-53
----------------------- Page 54-----------------------
参考答案
1B
2A
3AC
4D
5B
6D
7D
8B
9AC
10 B C
11C
12 B
13 D
14 D
15 C
因篇幅问题不能全部显示,请点此查看更多更全内容