Java Java Objects Harnessing the Power of Objects Throwing Exceptions

Nkosinolwazi Moyo
Nkosinolwazi Moyo
9,588 Points

Help me

What's wrong with my code
class GoKart {
  public static final int MAX_BARS = 8;
  private String color;
  private int barCount;
  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) {

    lapsDriven += laps;
    barCount -= laps;
    if (barCount ==0);
    throw new  IllegalArgumentExcepitions ("if there are not bars to support the laps request");


1 Answer

Maxwell Newberry
Maxwell Newberry
Front End Web Development Techdegree Student 7,675 Points

A few things to make note:

  • The challenge would like you to throw the exception BEFORE you change the count, meaning, you should put the if-statement at the beginning of the method.
  • Make sure your if-statement is in proper syntax. Remove the semi-colon and surround your exception in curly braces to follow proper style guide presets.
  • You have a spelling error in that you said IllegalArgumentExcepitions where is should be IllegalArgumentException

Edit: You can check your if-statement with mine, but make sure you understand before you move:

if(barCount - laps < 0) {
   throw new IllegalArgumentException("Error: barCount would result in number less than zero.");