Could the if (sub.isEmpty()) { ... } generate any exception? In negative case, I'd move outise the try/catch block.