logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Exceptions See What Others Are Saying!
  • Question
  • What will be the output of the program?
    public class Test 
    {  
        public static void aMethod() throws Exception 
        {
            try /* Line 5 */
            {
                throw new Exception(); /* Line 7 */
            } 
            finally /* Line 9 */
            {
                System.out.print("finally "); /* Line 11 */
            } 
        } 
        public static void main(String args[]) 
        {
            try 
            {
                aMethod();  
            } 
            catch (Exception e) /* Line 20 */
            {
                System.out.print("exception "); 
            } 
            System.out.print("finished"); /* Line 24 */
        } 
    }
    


  • Options
  • A. finally
  • B. exception finished
  • C. finally exception finished
  • D. Compilation fails

  • Correct Answer
  • finally exception finished 

    Explanation
    This is what happens:

    (1) The execution of the try block (line 5) completes abruptly because of the throw statement (line 7).

    (2) The exception cannot be assigned to the parameter of any catch clause of the try statement therefore the finally block is executed (line 9) and "finally" is output (line 11).

    (3) The finally block completes normally, and then the try statement completes abruptly because of the throw statement (line 7).

    (4) The exception is propagated up the call stack and is caught by the catch in the main method (line 20). This prints "exception".

    (5) Lastly program execution continues, because the exception has been caught, and "finished" is output (line 24).


    More questions

    • 1. Which three statements are true?
      1. f1 == f2
      2. f1 == f3
      3. f2 == f1[1]
      4. x == f1[0]
      5. f == f1[0]
      import java.awt.Button;
      class CompareReference 
      {
          public static void main(String [] args) 
          {
              float f = 42.0f;
              float [] f1 = new float[2];
              float [] f2 = new float[2];
              float [] f3 = f1;
              long x = 42;
              f1[0] = 42.0f;
          }
      }
      

    • Options
    • A. 1, 2 and 3
    • B. 2, 4 and 5
    • C. 3, 4 and 5
    • D. 1, 4 and 5
    • Discuss
    • 2. Which one create an anonymous inner class from within class Bar?
      class Boo 
      {
          Boo(String s) { }
          Boo() { }
      }
      class Bar extends Boo 
      {
          Bar() { }
          Bar(String s) {super(s);}
          void zoo() 
          {
          // insert code here
          }
      }
      

    • Options
    • A. Boo f = new Boo(24) { };
    • B. Boo f = new Bar() { };
    • C. Bar f = new Boo(String s) { };
    • D. Boo f = new Boo.Bar(String s) { };
    • Discuss
    • 3. Which of the following code fragments inserted, will allow to compile?
      public class Outer 
      { 
          public void someOuterMethod() 
          {
              //Line 5 
          } 
          public class Inner { } 
          
          public static void main(String[] argv) 
          {
              Outer ot = new Outer(); 
              //Line 10
          } 
      } 
      

    • Options
    • A. new Inner(); //At line 5
    • B. new Inner(); //At line 10
    • C. new ot.Inner(); //At line 10
    • D. new Outer.Inner(); //At line 10
    • Discuss
    • 4. What will be the output of the program?
      public class Test178 
      { 
          public static void main(String[] args) 
          {
              String s = "foo"; 
              Object o = (Object)s; 
              if (s.equals(o)) 
              { 
                  System.out.print("AAA"); 
              } 
              else 
              {
                  System.out.print("BBB"); 
              } 
              if (o.equals(s)) 
              {
                  System.out.print("CCC"); 
              } 
              else 
              {
                  System.out.print("DDD"); 
              } 
          } 
      }
      

    • Options
    • A. AAACCC
    • B. AAADDD
    • C. BBBCCC
    • D. BBBDDD
    • Discuss
    • 5. What will be the output of the program?
      int i = (int) Math.random();
      

    • Options
    • A. i = 0
    • B. i = 1
    • C. value of i is undetermined
    • D. Statement causes a compile error
    • Discuss
    • 6. What will be the output of the program?
      class Tree { } 
      class Pine extends Tree { } 
      class Oak extends Tree { } 
      public class Forest1 
      { 
          public static void main (String [] args)
          { 
              Tree tree = new Pine(); 
              if( tree instanceof Pine ) 
                  System.out.println ("Pine"); 
              else if( tree instanceof Tree ) 
                  System.out.println ("Tree"); 
              else if( tree instanceof Oak ) 
                  System.out.println ( "Oak" ); 
              else 
                  System.out.println ("Oops "); 
          } 
      }
      

    • Options
    • A. Pine
    • B. Tree
    • C. Forest
    • D. Oops
    • Discuss
    • 7. What will be the output of the program?
      public class StringRef 
      {
          public static void main(String [] args) 
          {
              String s1 = "abc";
              String s2 = "def";
              String s3 = s2;   /* Line 7 */
              s2 = "ghi";
              System.out.println(s1 + s2 + s3);
          }
      }
      

    • Options
    • A. abcdefghi
    • B. abcdefdef
    • C. abcghidef
    • D. abcghighi
    • Discuss
    • 8. What will be the output of the program?
      public class ObjComp 
      {
          public static void main(String [] args ) 
          {
              int result = 0;
              ObjComp oc = new ObjComp();
              Object o = oc;
      
              if (o == oc)  
                  result = 1;
              if (o != oc)  
                  result = result + 10;
              if (o.equals(oc) )  
                  result = result + 100;
              if (oc.equals(o) )  
                  result = result + 1000;
      
              System.out.println("result = " + result);
          }
      }
      

    • Options
    • A. 1
    • B. 10
    • C. 101
    • D. 1101
    • Discuss
    • 9. What will be the output of the program?
      String d = "bookkeeper";
      d.substring(1,7);
      d = "w" + d;
      d.append("woo");  /* Line 4 */
      System.out.println(d);
      

    • Options
    • A. wookkeewoo
    • B. wbookkeeper
    • C. wbookkeewoo
    • D. Compilation fails.
    • Discuss
    • 10. What will be the output of the program?
      interface Count 
      {
          short counter = 0;
          void countUp();
      }
      public class TestCount implements Count 
      {
          public static void main(String [] args) 
          {
              TestCount t = new TestCount();
              t.countUp();
          }
          public void countUp() 
          {
              for (int x = 6; x>counter; x--, ++counter) /* Line 14 */
              {
                  System.out.print(" " + counter);
              }
          }
      }
      

    • Options
    • A. 0 1 2
    • B. 1 2 3
    • C. 0 1 2 3
    • D. 1 2 3 4
    • E. Compilation fails
    • Discuss


    Comments

    There are no comments.

Enter a new Comment