title: Validating function arguments?
body: <p>On a regular basis, I validate my function arguments:</p>
  
  <pre><code>
  public static void Function(int i, string s)
  {
    Debug.Assert(i > 0);
    Debug.Assert(s != null);
    Debug.Assert(s.length > 0);
  }
  </code></pre>
  
  <p>Of course the checks are "valid" in the context of the function.</p>
  
  <p>Is this common industry practice?  What is common practice concerning function argument validation?</p>