An exception transfers control to a matching catch or to the caller. Statements after a thrown exception don't run. That makes the position of success accounting important: increment an accepted count after validation succeeds, not before it. Catch inside a batch loop when one rejected record should not stop later records.
Checked exceptions must be caught or declared with throws. RuntimeException subclasses are unchecked, although callers can still catch them when they represent a failure the caller can handle. NumberFormatException is an IllegalArgumentException, so place the more specific catch first. Don't erase useful categories by catching Exception and calling every problem the same thing. These tasks distinguish malformed text, valid zeroes, out-of-range numbers and a checked capacity failure. Their returned audit evidence makes accidental swallowing visible.