Java Java Objects Harnessing the Power of Objects Handling Exceptions

ahmed abdelnaser
ahmed abdelnaser
5,261 Points

Please tell me what is the error here?

i do not know what error is.

Example.java
class Example {

  public static void main(String[] args) {
    try{
    GoKart kart = new GoKart("purple");
    if (kart.isBatteryEmpty()) {
      System.out.println("The battery is empty");
    }
    kart.drive(42);
    } catch (IllegalArgumentException iae){
     System.out.println(iae.getMessage()); 
    }
  }

}
GoKart.java
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;
  }

}
Teacher Russell
Teacher Russell
16,868 Points

Hi Sir, I strongly recommend watching the video some more, and I"m sure you'll understand. First of all, too much of the code here is wrapped in the try/catch block. We're trying the drive method and catching the Illegal Argument Exception if we don't have enough power. It'll look like
try{ kart.drive(42); } catch(IllegalArgumentException iae){ System.out.println(iae.getMessage()); } It will be a good idea to understand this stage as deeply as possible, because it will come back in the second half, and will be a little more complex:) Good luck! Happy Coding! https://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html

ahmed abdelnaser
ahmed abdelnaser
5,261 Points

thank you very much for your help and i really appreciate your advice.