Actually it's good practice. If the caller passes in something it *thinks* will be have an effect on the behaviour of the object, and the code ignores it, then you have a potential bug on your hands. It's always better to catch such an error than to silently ignore it, even if it will be caught by the caller's unit tests.