title: Should Guid.Empty Result in ArgumentException or ArgumentOutOfRangeException
body: <p>Imagine that you have a method with the following signature:</p>
  
  <pre><code>public void DoSomething(Guid id)
  </code></pre>
  
  <p>If <code>Guid.Emtpy</code> represents an illegal value, which Exception type would it be most appropriate to throw? ArgumentException or ArgumentOutOfRangeException?</p>
  
  <p>I'm leaning slightly towards ArgumentException, since I don't think that <em>all Guids except Guid.Empty</em> is much of a range - it's a bit too inclusive: There is only one excluded member.</p>
  
  <p>However, I am in no way determined that this should be the case, so I'd like to hear if anyone can provide arguments for one or the other?</p>
  
  <p>I'm well aware that this is mainly a semantic discussion, but in the interest of good API design I'd still like to know whether there are clear cases for one or the other option.</p>