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. Assertion checking is typically enabled when a program is deployed.
      2. It is never appropriate to write code to handle failure of an assert statement.
      3. Assertion checking is typically enabled during program development and testing.
      4. Assertion checking can be selectively enabled or disabled on a per-package basis, but not on a per-class basis.
      5. Assertion checking can be selectively enabled or disabled on both a per-package basis and a per-class basis.

    • Options
    • A. 1, 2 and 4
    • B. 2, 3 and 5
    • C. 3, 4 and 5
    • D. 1, 2 and 5
    • Discuss
    • 2. What will be the output of the program?
      class s implements Runnable 
      { 
          int x, y; 
          public void run() 
          { 
              for(int i = 0; i < 1000; i++) 
                  synchronized(this) 
                  { 
                      x = 12; 
                      y = 12; 
                  } 
              System.out.print(x + " " + y + " "); 
          } 
          public static void main(String args[]) 
          { 
              s run = new s(); 
              Thread t1 = new Thread(run); 
              Thread t2 = new Thread(run); 
              t1.start(); 
              t2.start(); 
          } 
      }
      

    • Options
    • A. DeadLock
    • B. It print 12 12 12 12
    • C. Compilation Error
    • D. Cannot determine output.
    • Discuss
    • 3. What will be the output of the program?
      public class ThreadTest extends Thread 
      { 
          public void run() 
          { 
              System.out.println("In run"); 
              yield(); 
              System.out.println("Leaving run"); 
          } 
          public static void main(String []argv) 
          { 
              (new ThreadTest()).start(); 
          } 
      }
      

    • Options
    • A. The code fails to compile in the main() method
    • B. The code fails to compile in the run() method
    • C. Only the text "In run" will be displayed
    • D. The text "In run" followed by "Leaving run" will be displayed
    • Discuss
    • 4. Which statement is true?

    • Options
    • A. A static method cannot be synchronized.
    • B. If a class has synchronized code, multiple threads can still access the nonsynchronized code.
    • C. Variables can be protected from concurrent access problems by marking them with the synchronized keyword.
    • D. When a thread sleeps, it releases its locks.
    • Discuss
    • 5. Which of the following are legal lines of code?

      1. int w = (int)888.8;
      2. byte x = (byte)1000L;
      3. long y = (byte)100;
      4. byte z = (byte)100L;

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. All statements are correct.
    • Discuss
    • 6. What will be the output of the program?
      int I = 0;
      label:
          if (I < 2) {
          System.out.print("I is " + I);
          I++;
          continue label;
      }
      

    • Options
    • A. I is 0
    • B. I is 0 I is 1
    • C. Compilation fails.
    • D. None of the above
    • Discuss
    • 7. What will be the output of the program?
      interface Foo141 
      { 
          int k = 0; /* Line 3 */
      } 
      public class Test141 implements Foo141 
      {
          public static void main(String args[]) 
          {
              int i; 
              Test141 test141 = new Test141(); 
              i = test141.k; /* Line 11 */
              i = Test141.k; 
              i = Foo141.k; 
          } 
      }
      

    • Options
    • A. Compilation fails.
    • B. Compiles and runs ok.
    • C. Compiles but throws an Exception at runtime.
    • D. Compiles but throws a RuntimeException at runtime.
    • Discuss
    • 8. What will be the output of the program?
      public class Test 
      {  
          public static void main(String args[]) 
          { 
              int i = 1, j = 0; 
              switch(i) 
              { 
                  case 2: j += 6; 
                  case 4: j += 1; 
                  default: j += 2; 
                  case 0: j += 4; 
              } 
              System.out.println("j = " + j); 
          } 
      }
      

    • Options
    • A. j = 0
    • B. j = 2
    • C. j = 4
    • D. j = 6
    • Discuss
    • 9. What will be the output of the program?
      Float f = new Float("12"); 
      switch (f) 
      {
          case 12: System.out.println("Twelve"); 
          case 0: System.out.println("Zero"); 
          default: System.out.println("Default"); 
      }
      

    • Options
    • A. Zero
    • B. Twelve
    • C. Default
    • D. Compilation fails
    • Discuss
    • 10. What will be the output of the program?
      for (int i = 0; i < 4; i += 2) 
      { 
          System.out.print(i + " "); 
      } 
      System.out.println(i); /* Line 5 */
      

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


    Comments

    There are no comments.

Enter a new Comment