Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialBhupend Patil
25,918 PointsHELP :( throwing-exceptions
where to write IllegalArgumentException ?
public class GoKart {
public static final int MAX_BARS = 8;
private String mColor;
private int mBarsCount;
public GoKart(String color) {
mColor = color;
mBarsCount = 0;
}
public String getColor() {
return mColor;
}
public void drive() {
drive(1);
}
public void drive(int laps) {
// Other driving code omitted for clarity purposes
throw new IllegalArgumentException("Not enough battery remains");
mBarsCount -= laps;
}
public void charge() {
while (!isFullyCharged()) {
mBarsCount++;
}
}
public boolean isBatteryEmpty() {
return mBarsCount == 0;
}
public boolean isFullyCharged() {
return mBarsCount == MAX_BARS;
}
}
3 Answers
Ken Alger
Treehouse TeacherBhupend;
You are in the right spot, but you only need to through the exception if something is not correct, such as the battery not having enough bars to do the requested number of laps.
Post back if you are still stuck.
Ken
james white
78,399 PointsI think trying to relate the video code to the challenge answer caused me a lot of confusion and heartache.
Following the pattern in the video, I thought the added code (including the necessary if code Ken said above was needed) would be:
int newAmount = mBarsCount + laps
if (newAmount > MAX_BARS) {
throw new IllegalArgumentException("Not enough battery remains");
}
//however the above code didn't pass the answer analyzer
//after MUCH try and error I found I had to use
//an if test that was TOTALLY different from the video to pass:
public void drive(int laps) {
if (laps > mBarsCount) {
throw new IllegalArgumentException("Not enough battery remains");
}
mBarsCount -= laps;
}
// this challenge definitely made me think too much..
Dean Onizuka
4,753 Pointsthis is the same problem i had as well. the videos do seem to be misleading and following the videos to the tee and using the code in the video seems to cause more trouble
Bhupend Patil
25,918 PointsThank You Ken it helped me :)