<p>I've just come across a property setter that catches exceptions (all Exceptions; I know that's bad, but it's not relevant here), and <em>only</em> logs them.  First of all, I think it should through them again as well; why wait for a crash and a log study when you can know something is wrong right away?</p>

<p>However, my main question is, do I validate against invalid date values, add a RuleViolation object to a ValidationRules object on my document, or throw an InvalidDate exception, or just let the CLR throw the exception for me (invalid dates are nothing but invalid dates, not checked for range etc.)</p>

Catching and rethrowing is the worst thing to do. Its expensive to TRY, if youre just going to rethrow what the point? You can
catch unhandled exceptions with the global.asax
for example if you need to log them.
In terms of validation, from a web perspective i always use regex validators for dates, these fire client and server side so i know when im inside an
```
```
if(Page.IsValid)
```
```
block that my txtDate.Text is a valid date, so i dont bother checking because its just wasteful.