> What about Java? java.util.Date (1.0) does it. "In all cases, arguments given to methods for these purposes need not fall within the indicated ranges; for example, a date may be specified as January 32 and is interpreted as meaning February 1." java.util.Calendar and java.util.GregorianCalendar (1.1) distinguish between "lenient" and "non-lenient" calendars. However, when I tried to do something with it, both modes seemed to allow April 31, not even converting to May 1. I don't really understand what I may have done wrong. > It's intended use for enterprise applications You mean Ruby/Perl aren't intended for enterprise applications? > Back a couple of decades ago when machine cycles and bytes were some 100x+ > times more expensive, I think it was pretty rare for system calls to check > the validity of arguments, I am all for Exceptions, except in this case. matju