To keep BC, this must only throw `ParseException`.
Maybe the exceptions should extend `ParseException`?
But I'll loose the message prefix.