title: Throwing out of range exception for DateTime
body: <p>I have a quick question. I am not sure what is the best way of going about this.
  Should I throw an out of range exception for DateTime? Because I want to make my code as idiot proof as possible. </p>
  
  <p>At the bottom is my code. Is this a good way of throwing the exception? When i don't throw an out of range exception a argumentexception happens. Should i throw an argument exception instead? Are these correct parameters to put in my exception. What's the best way of going about this? Is this a good way to throw exceptions in general?</p>
  
  <p>Thanks</p>
  
  <pre><code>private DateTime date;
  public SimpleDate(int day, int month, int year)
  {
      if (day &gt; 31 || day &lt; 0)
      {
          throw new ArgumentOutOfRangeException("day");
      }
      if (month &gt; 12 || month &lt; 0)
      {
          throw new ArgumentOutOfRangeException("month");
      }
      if (year &gt; 2100 || year &lt; 1900)
      {
          throw new ArgumentOutOfRangeException("year");
      }
      date = new DateTime(year, month, day);
  }
  </code></pre>