logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Exceptions Comments

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


  • Exceptions problems


    Search Results


    • 1. Which answer most closely indicates the behavior of the program?
      public class MyProgram 
      {
          public static void throwit() 
          {
              throw new RuntimeException();
          }
          public static void main(String args[])
          {
              try 
              {
                  System.out.println("Hello world ");
                  throwit();
                  System.out.println("Done with try block ");
              }
              finally 
              {
                  System.out.println("Finally executing ");
              }
          }
      }
      

    • Options
    • A. The program will not compile.
    • B. The program will print Hello world, then will print that a RuntimeException has occurred, then will print Done with try block, and then will print Finally executing.
    • C. The program will print Hello world, then will print that a RuntimeException has occurred, and then will print Finally executing.
    • D. The program will print Hello world, then will print Finally executing, then will print that a RuntimeException has occurred.
    • Discuss
    • 2. Which statement is true?

    • Options
    • A. catch(X x) can catch subclasses of X where X is a subclass of Exception.
    • B. The Error class is a RuntimeException.
    • C. Any statement that can throw an Error must be enclosed in a try block.
    • D. Any statement that can throw an Exception must be enclosed in a try block.
    • Discuss
    • 3. Which statement is true?

    • Options
    • A. A try statement must have at least one corresponding catch block.
    • B. Multiple catch statements can catch the same class of exception more than once.
    • C. An Error that might be thrown in a method must be declared as thrown by that method, or be handled within that method.
    • D. Except in case of VM shutdown, if a try block starts to execute, a corresponding finally block will always start to execute.
    • Discuss
    • 4. Given that all methods of class FileOutputStream, including close(), throw an IOException, which of these is true?
      import java.io.*;
      public class MyProgram 
      {
          public static void main(String args[])
          {
              FileOutputStream out = null;
              try 
              {
                  out = new FileOutputStream("test.txt");
                  out.write(122);
              }
              catch(IOException io) 
              {
                  System.out.println("IO Error.");
              }
              finally 
              {
                  out.close();
              }
          }
      }
      

    • Options
    • A. This program will compile successfully.
    • B. This program fails to compile due to an error at line 4.
    • C. This program fails to compile due to an error at line 6.
    • D. This program fails to compile due to an error at line 18.
    • Discuss
    • 5. Given that EOFException and FileNotFoundException are both subclasses of IOException, and further assuming this block of code is placed into a class, which statement is most true concerning this code?
      System.out.print("Start ");
      try 
      {
          System.out.print("Hello world");
          throw new FileNotFoundException();
      }
      System.out.print(" Catch Here "); /* Line 7 */
      catch(EOFException e) 
      {
          System.out.print("End of file exception");
      }
      catch(FileNotFoundException e) 
      {
          System.out.print("File not found");
      }
      

    • Options
    • A. The code will not compile.
    • B. Code output: Start Hello world File Not Found.
    • C. Code output: Start Hello world End of file exception.
    • D. Code output: Start Hello world Catch Here File not found.
    • Discuss
    • 6. Which four can be thrown using the throw statement?

      1. Error
      2. Event
      3. Object
      4. Throwable
      5. Exception
      6. RuntimeException

    • Options
    • A. 1, 2, 3 and 4
    • B. 2, 3, 4 and 5
    • C. 1, 4, 5 and 6
    • D. 2, 4, 5 and 6
    • Discuss
    • 7. What will be the output of the program?
      class A 
      { 
          public A(int x){} 
      } 
      class B extends A { } 
      public class test 
      { 
          public static void main (String args []) 
          {
              A a = new B(); 
              System.out.println("complete"); 
          } 
      }
      

    • Options
    • A. It compiles and runs printing nothing
    • B. Compiles but fails at runtime
    • C. Compile Error
    • D. Prints "complete"
    • Discuss
    • 8. What will be the output of the program?
      public class Test138 
      { 
          public static void stringReplace (String text) 
          {
              text = text.replace ('j' , 'c'); /* Line 5 */
          } 
          public static void bufferReplace (StringBuffer text) 
          { 
              text = text.append ("c");  /* Line 9 */
          } 
          public static void main (String args[]) 
          { 
              String textString = new String ("java"); 
              StringBuffer textBuffer = new StringBuffer ("java"); /* Line 14 */
              stringReplace(textString); 
              bufferReplace(textBuffer); 
              System.out.println (textString + textBuffer); 
          } 
      }
      

    • Options
    • A. java
    • B. javac
    • C. javajavac
    • D. Compile error
    • Discuss
    • 9. 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
    • 10. What will be the output of the program?
      String x = new String("xyz");
      String y = "abc";
      x = x + y;
      
      How many String objects have been created?

    • Options
    • A. 2
    • B. 3
    • C. 4
    • D. 5
    • Discuss


    Comments

    There are no comments.

Enter a new Comment