logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Exceptions See What Others Are Saying!
  • Question
  • At Point X on line 5, which code is necessary to make the code compile?
    public class ExceptionTest 
    { 
        class TestException extends Exception {} 
        public void runTest() throws TestException {} 
        public void test() /* Point X */ 
        { 
            runTest(); 
        } 
    }
    


  • Options
  • A. No code is necessary.
  • B. throws Exception
  • C. catch ( Exception e )
  • D. throws RuntimeException

  • Correct Answer
  • throws Exception 

    Explanation
    Option B is correct. This works because it DOES throw an exception if an error occurs.

    Option A is wrong. If you compile the code as given the compiler will complain:

    "unreported exception must be caught or declared to be thrown" The class extends Exception so we are forced to test for exceptions.

    Option C is wrong. The catch statement belongs in a method body not a method specification.

    Option D is wrong. TestException is a subclass of Exception therefore the test method, in this example, must throw TestException or some other class further up the Exception tree. Throwing RuntimeException is just not on as this belongs in the java.lang.RuntimeException branch (it is not a superclass of TestException). The compiler complains with the same error as in A above.


  • More questions

    • 1. What will be the output of the program?
      public class If1 
      {
          static boolean b;
          public static void main(String [] args) 
          {
              short hand = 42;
              if ( hand < 50 && !b ) /* Line 7 */
                  hand++;
              if ( hand > 50 );     /* Line 9 */
              else if ( hand > 40 ) 
              {
                  hand += 7;
                  hand++;    
              }
              else
                  --hand;
              System.out.println(hand);
          }
      }
      

    • Options
    • A. 41
    • B. 42
    • C. 50
    • D. 51
    • Discuss
    • 2. What will be the output of the program?
      public class Test 
      { 
          public static void main (String args[]) 
          {
              String str = NULL; 
              System.out.println(str); 
          } 
      }
      

    • Options
    • A. NULL
    • B. Compile Error
    • C. Code runs but no output
    • D. Runtime Exception
    • Discuss
    • 3. What will be the output of the program?

      System.out.println(Math.sqrt(-4D));


    • Options
    • A. -2
    • B. NaN
    • C. Compile Error
    • D. Runtime Exception
    • Discuss
    • 4. What will be the output of the program?
      package foo; 
      import java.util.Vector; /* Line 2 */
      private class MyVector extends Vector 
      {
          int i = 1; /* Line 5 */
          public MyVector() 
          { 
              i = 2; 
          } 
      } 
      public class MyNewVector extends MyVector 
      {
          public MyNewVector () 
          { 
              i = 4; /* Line 15 */
          } 
          public static void main (String args []) 
          { 
              MyVector v = new MyNewVector(); /* Line 19 */
          } 
      }
      

    • Options
    • A. Compilation will succeed.
    • B. Compilation will fail at line 3.
    • C. Compilation will fail at line 5.
    • D. Compilation will fail at line 15.
    • Discuss
    • 5. What will be the output of the program?
      TreeSet map = new TreeSet();
      map.add("one");
      map.add("two");
      map.add("three");
      map.add("four");
      map.add("one");
      Iterator it = map.iterator();
      while (it.hasNext() ) 
      {
          System.out.print( it.next() + " " );
      }
      

    • Options
    • A. one two three four
    • B. four three two one
    • C. four one three two
    • D. one two three four one
    • Discuss
    • 6. 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
    • 7. 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
    • 8. 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
    • 9. 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
    • 10. 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


    Comments

    There are no comments.

Enter a new Comment