java第八章练习题(异常)

第八章练习题(异常)

 

    1.Java语言中异常的分类是哪项?

    A.运行时异常和异常

    B.受检异常和非受检异常

    C.错误和异常

    D.错误和运行时异常

  

    2.所有异常的父类是哪项?

    A.  Throwable

    B.   Error

扫描二维码关注公众号,回复: 3521027 查看本文章

    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

    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"));//RuntimeException r

    5.          } catch (RuntimeException r)  {

    6.           System.out.print ("runtime");

    7.       } catch  (NumberFormatException e)  {

    8.    system..ut.print("number");

    9.     }

    10.    }

    11.  }

//java.lang.Object

  java.lang.Throwable

      java.lang.Exception

          java.lang.RuntimeException

              java.lang.IllegalArgumentException

                  java.lang.NumberFormatException

 

    结果是什么?

    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.  }

如果调用 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) {

              java.lang.RuntimeException

               java.lang.ClassCastException

 

 

 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

  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..编译失败

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  (

//Exception Exception is not compatible with throws clause in Utils.getlnt(String)

    8.return Integer.parselnt (arg);

    9.    }

    10.  }

    11. class Utils  {

    12.    int getlnt (String arg)    {return 42;  }

    13.  }

    结果为:

    A. 42

    B. Exc

    C. 42Exc

    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行

    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.编译失败

   参考答案

    1B

    2A

    3AC

    4D

    5B

    6D

    7D

    8B

    9 A C

    10 B C

    11 C

    12 B

    13 D

    14 D

    15 C

猜你喜欢

转载自blog.csdn.net/bifuguo/article/details/82797684