Depends on your use case, but this is probably a hard error.  Consider the process by which a character might buy a good from a shop: the interface will probably be doing a bunch of checks beforehand, right?  Like, I shouldn't be able to select a good for purchase that's not in the shop list.  I shouldn't be able to select more of a good than they have for sale.  I probably shouldn't even be able to select more of the good than I can afford.  By the time I'm ready to invoke the `sell` method, I'm probably pretty confident in what I'm doing - it should Go Forth, and bitch loudly if it doesn't work.  :)