What is the result?

Given:

public class Test {

public static void main(String[] args) {

String[] arr = {“SE”,”ee”,”ME”};

for(String var : arr) {

try {

switch(var) {

case “SE”:

System.out.println(“Standard Edition”);

break;

case “EE”:

System.out.println(“Enterprise Edition”);

break;

default: assert false;

}

} catch (Exception e) {

System.out.println(e.getClass()); }

}

}

}

And the commands:

javac Test.java

java ea Test

What is the result?

Given:

public class Test {

public static void main(String[] args) {

String[] arr = {“SE”,”ee”,”ME”};

for(String var : arr) {

try {

switch(var) {

case “SE”:

System.out.println(“Standard Edition”);

break;

case “EE”:

System.out.println(“Enterprise Edition”);

break;

default: assert false;

}

} catch (Exception e) {

System.out.println(e.getClass()); }

}

}

}

And the commands:

javac Test.java

java ea Test

What is the result?

A.
Compilation fails

B.
Standard Edition
Enterprise Edition
Micro Edition

C.
Standard Edition
class java.lang.AssertionError
Micro Edition

D.
Standard Edition is printed and an Assertion Error is thrown

Explanation:
The command line :
javac Test.java
willcompilethe program.

As for command line:
java ea Test
First the code will produce the output:
Standard Edition
See Note below.

The ea option will enable assertions.
This will make the following line in the switch statement to be run:
default: assert false;
This will thow an assertion error. This error will be caught. An the class of the assertion error (class java.lang.AssertionError) will be printed by the following line:
System.out.println(e.getClass());

Note:The java tool launches a Java application. It does this by starting a Java runtime environment, loading a specified class, and invoking that class’s main method. The method declaration must look like the following:
public static void main(String args[])

Paramater ea:
-enableassertions[:<package name>”…” | :<class name> ] -ea[:<package name>”…” | :<class name> ]
Enable assertions. Assertions are disabled by default. With no arguments, enableassertions or -ea enables assertions.

Note 2:
An assertion is a statement in the JavaTM programming language that enables you to test your assumptions about your program.
Each assertion contains a boolean expression that you believe will be true when the assertion executes. If it is not true, the system will throw an error.

public classAssertionError
extendsError
Thrown to indicate that an assertion has failed.

Note 3:
The javac command compiles Java source code into Java bytecodes. You then use the Java interpreter – the java command – to interprete the Java bytecodes.

Reference:java – the Java application launcher

Reference:java.langClass AssertionError



Leave a Reply 6

Your email address will not be published. Required fields are marked *


Boris

Boris

yes.. D is correct answer

Francesco

Francesco

The correct answer is D because an Error exception is thrown. Each Error exception is a fatal error so it is not possible to recover from them. In contrast if it was an Exception or RuntimeException it would have written :
Standard Edition
class java.lang.Exception
class java.lang.Exception