Is throwing an exception for something we're preventing from happening better than a warning?