
Liberty Mudzvova
5,559 PointsWhat am i doing wrong
I tried
class Example {
public static void main(String[] args) {
GoKart kart = new GoKart("purple");
if (kart.isBatteryEmpty()) {
System.out.println("The battery is empty");
}
kart.drive(42);
}
public String getMessage() {
try {
kart.drive(42);
} catch (IllegalArgumentException iae) {
system.out.println("iae");
}
}
class GoKart {
public static final int MAX_BARS = 8;
private int barCount;
private String color;
private int lapsDriven;
public GoKart(String color) {
this.color = color;
}
public String getColor() {
return color;
}
public void charge() {
barCount = MAX_BARS;
}
public boolean isBatteryEmpty() {
return barCount == 0;
}
public boolean isFullyCharged() {
return MAX_BARS == barCount;
}
public void drive() {
drive(1);
}
public void drive(int laps) {
if (laps > barCount) {
throw new IllegalArgumentException("Not enough battery remains");
}
lapsDriven += laps;
barCount -= laps;
}
}
1 Answer

Steven Parker
177,671 PointsYou're close, perhaps you can get it with just a few hints:
- the "try" should go around the existing call to "drive" instead of adding another one
- you don't need to create a new method
- you'll be using the exception's "getMessage" method instead of a fixed string for the message
- "System" needs a capital "S"