I guess raising an error is more user-friendly, since it actually tells the users they did something wrong. If we don't fail the app behaviour will be dependent on the order in which we check for the exit-causing options in the code.