I know that going into a catch block has some significance cost when executing a program, however, I was wondering if entering a try{} block also had any impact so I started looking for an answer in google with many opinions, but no benchmarking at all. Some answers I found were:

  1. Java try/catch performance, is it recommended to keep what is inside the try clause to a minimum?
  2. Try Catch Performance Java
  3. Java try catch blocks

However they didn't answer my question with facts, so I decided to try it for myself.

Here's what I did. I have a csv file with this format:

host;ip;number;date;status;email;uid;name;lastname;promo_code;

where everything after status is optional and will not even have the corresponding ; , so when parsing a validation has to be done to see if the value is there, here's where the try/catch issue came to my mind.

The current code that I inherited in my company does this:

StringTokenizer st=new StringTokenizer(line,";");  
String host = st.nextToken();
String ip = st.nextToken();
String number = st.nextToken();
String date = st.nextToken();
String status = st.nextToken();                             
String email = "";
try{
    email = st.nextToken();
}catch(NoSuchElementException e){
    email = "";
}

and it repeats what it's done for email with uid, name, lastname and promo_code.

and I changed everything to:

if(st.hasMoreTokens()){
    email = st.nextToken();
}

and in fact it performs faster. When parsing a file that doesn't have the optional columns. Here are the average times:

Edit
Report