Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Assertion

 
uzma Akbar
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
class C {
String m1(int i) {
switch (i) {
case 0: return "A";
case 1: return "B";
case 2: return "C";
default: throw new AssertionError();
}}
public static void main(String[] args) {
C c = new C();
for (int i = 0; i < 4; i++) {
System.out.print(c.m1(i));
}}}

Which statements are true?

a. With assertions enabled it prints ABC followed by an AssertionError message.
b. With assertions disabled it prints ABC followed by an AssertionError message.
c. Assertions should not be used within the default case of a switch statement.
d. In this code example an assert statement could not be used in place of the "throw" statement

Correct Answers are : a,b,d
I could not understand how d is correct. please help. Thanks in advance
 
agrah upadhyay
Ranch Hand
Posts: 579
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
class C {
String m1(int i) {
switch (i) {
case 0: return "A";
case 1: return "B";
case 2: return "C";
default: throw new AssertionError();
}}
public static void main(String[] args) {
C c = new C();
for (int i = 0; i < 4; i++) {
System.out.print(c.m1(i));
}}}

In Above Example Return Type Of Method m1() is String.i.e. It Has To Return Either String Or Throw An Exception.If There Have Been An Assert Statement ,method m1() Would Not Have Returned Any String Or Thrown Error Condition Wen Asserrt Is Enabled That's Why It Wud Have Caused Error.
 
uzma Akbar
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
class C {
String m1(int i) {
switch (i) {
case 0: return "A";
case 1: return "B";
case 2: return "C";
default:
assert false;
}
}
public static void main(String[] args) {
C c = new C();
for (int i = 0; i < 4; i++) {
System.out.print(c.m1(i));
}}}
Which statements are true?

a. With assertions enabled it prints ABC followed by an AssertionError message.
b. With assertions disabled it prints ABC followed by an AssertionError message.
c. Assertions should not be used within the default case of a switch statement.
d. In this code example a throw statement must be used in place of the assert statement.
e. Compile-time error


Answer : d,e


class C {
String m1(int i) {
switch (i) {
case 0: return "A";
case 1: return "B";
case 2: return "C";
default:
assert false;
}
return "E";
}
public static void main(String[] args) {
C c = new C();
for (int i = 0; i < 4; i++) {
System.out.print(c.m1(i));
}}}

Which statements are true?

a. With assertions enabled it prints ABC followed by an AssertionError message.
b. With assertions enabled it prints ABCE followed by an AssertionError message.
c. With assertions disabled it prints ABC
d. With assertions disabled it prints ABCE
e. Assertions should not be used within the default case of a switch statement
Answers: a,d


My question is why not in first case compiler error is thrown. Your help is appreciated. Thanks
 
agrah upadhyay
Ranch Hand
Posts: 579
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
class C {
String m1(int i) {
switch (i) {
case 0: return "A";
case 1: return "B";
case 2: return "C";
default:
assert false;
}
}
public static void main(String[] args) {
C c = new C();
for (int i = 0; i < 4; i++) {
System.out.print(c.m1(i));
}}}
Which statements are true?

a. With assertions enabled it prints ABC followed by an AssertionError message.
b. With assertions disabled it prints ABC followed by an AssertionError message.
c. Assertions should not be used within the default case of a switch statement.
d. In this code example a throw statement must be used in place of the assert statement.
e. Compile-time error


Answer : d,e

*********************************************************************8
As You Know assertions Are Not Activated by default.so if assertion is disabled,what will happen wen i doesn't match any of the case and reaches to default statement?--it will not return anything right?but Its return type is String(so it can either return Strind or throw ab error condition) so due to compatibility problem compile time error will be there........right?So It Must be Relplaced by throw AssertionError which is always enabled
now Think In This Very Manner for your 2nd problem
Right?
##########################################
Agrah
 
Sandeep Chhabra
Ranch Hand
Posts: 340
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please Use Code tags. That makes your code easily readable.
These tags are at the bottom of the page.

Thanks
 
Sandeep Chhabra
Ranch Hand
Posts: 340
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by agrah upadhyay:
class C {
String m1(int i) {
switch (i) {
case 0: return "A";
case 1: return "B";
case 2: return "C";
default:
assert false;
}
}
public static void main(String[] args) {
C c = new C();
for (int i = 0; i < 4; i++) {
System.out.print(c.m1(i));
}}}
Which statements are true?

a. With assertions enabled it prints ABC followed by an AssertionError message.
b. With assertions disabled it prints ABC followed by an AssertionError message.
c. Assertions should not be used within the default case of a switch statement.
d. In this code example a throw statement must be used in place of the assert statement.
e. Compile-time error


Answer : d,e

*********************************************************************8
As You Know assertions Are Not Activated by default.so if assertion is disabled,what will happen wen i doesn't match any of the case and reaches to default statement?--it will not return anything right?but Its return type is String(so it can either return Strind or throw ab error condition) so due to compatibility problem compile time error will be there........right?So It Must be Relplaced by throw AssertionError which is always enabled
now Think In This Very Manner for your 2nd problem
Right?
##########################################
Agrah


Agrah what type of compatibility problem are you talking about?
[ September 26, 2005: Message edited by: Sandeep Chhabra ]
 
agrah upadhyay
Ranch Hand
Posts: 579
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Expectation of compiler to get returned a specific return-type.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic