This question came up in a discussion I was having with my co-worker Chris Brewer. Suppose /foo is valid, but the user asks for /foo/bar. Should we just show /foo, or show a 404?
In other words, which is better: being nice or failing loudly?
Superficial love or tough love?
Arguments for the former: Postel's Law. Null Object pattern.
Arguments for the latter: Throwing exceptions. Fail loudly.