Java Java Objects Harnessing the Power of Objects Handling Exceptions

Protecting a Kart.Drive with Illegal Arg Exception


Can you kindly assist me on how the "protect" part of my method Kart.Drive comes about?

How can I fix my code?
class Example {

  public static void main(String[] args) {
    GoKart kart = new GoKart("purple");
    if (kart.isBatteryEmpty()) {
      System.out.println("The battery is empty");
    try (;
      System.out.printf ("Not possible");
    catch (IllegalArgumentException iae){
      System.out.printf ("The error is %s", iae.getMessage());

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() {

  public void drive(int laps) {
    if (laps > barCount) {
      throw new IllegalArgumentException("Not enough battery remains");
    lapsDriven += laps;
    barCount -= laps;


2 Answers

Tabatha Trahan
Tabatha Trahan
18,392 Points

You are so close! Take another look at your try block. Remember since it is a block, it should be opened and closed with curly braces rather than parentheses. If you swap those out, you should be able to complete the challenge.

Thanks Tabatha