How can I print the argument value that caused Exception in Java?

Posted by Sanoj on Stack Overflow See other posts from Stack Overflow or by Sanoj
Published on 2010-03-15T14:59:11Z Indexed on 2010/03/15 15:09 UTC
Read the original article Hit count: 275

I am writing a parser for csv-files, and sometimes I get NumberFormatException. Is there an easy way to print the argument value that caused the exception?

For the moment do I have many try-catch blocks that look like this:

String ean;
String price;

try {
    builder.ean(Long.parseLong(ean));
} catch (NumberFormatException e) {
    System.out.println("EAN: " + ean);
    e.printStackTrace();
}

try {
    builder.price(new BigDecimal(price));
} catch (NumberFormatException e) {
    System.out.println("Price: " + price);
    e.printStackTrace();
}

I would like to be able to write something like:

try {
    builder.ean(Long.parseLong(ean));
} catch (NumberFormatException e) {
    e.printMethod();    // Long.parseLong()
    e.printArgument();  // should print the string ean "99013241.23"
    e.printStackTrace();
}

Is there any way that I at least can improve my code? And do this kind of printing/logging more programmatically?

© Stack Overflow or respective owner

Related posts about java

Related posts about try-catch