throw the exception instead of returning it