Throwing a custom NumberFormatException in Java

NYC Canuck picture NYC Canuck · Nov 8, 2011 · Viewed 22.6k times · Source

I am trying to throw my own NumberFormatException when convrting a String month into an Integer. Not sure how to throw the exception. Any help would be appreciated. Do I need to add a try-catch before this part of the code? I already have one in another part of my code.

// sets the month as a string
mm = date.substring(0, (date.indexOf("/")));
// sets the day as a string
dd = date.substring((date.indexOf("/")) + 1, (date.lastIndexOf("/")));
// sets the year as a string
yyyy= date.substring((date.lastIndexOf("/"))+1, (date.length()));
// converts the month to an integer
intmm = Integer.parseInt(mm);
/*throw new NumberFormatException("The month entered, " + mm+ is invalid.");*/
// converts the day to an integer
intdd = Integer.parseInt(dd);
/* throw new NumberFormatException("The day entered, " + dd + " is invalid.");*/
// converts the year to an integer
intyyyy = Integer.parseInt(yyyy);
/*throw new NumberFormatException("The yearentered, " + yyyy + " is invalid.");*/

Answer

unbeli picture unbeli · Nov 8, 2011

something like this:

try {
    intmm = Integer.parseInt(mm);
catch (NumberFormatException nfe) {
    throw new NumberFormatException("The month entered, " + mm+ " is invalid.");
}

Or, a little bit better:

try {
    intmm = Integer.parseInt(mm);
catch (NumberFormatException nfe) {
    throw new IllegalArgumentException("The month entered, " + mm+ " is invalid.", nfe);
}

EDIT: Now that you've updated your post, it seems like what you actually need is something like parse(String) of SimpleDateFormat