title: How stringent should I be with Code Analysis compliance in Visual Studio?
body: <p>After playing with Code Analysis for a small project I am working on, I am wondering just how severe I should be when resolving code to be analytically compliant.</p>
  
  <p>I know I can suppress warnings for this, but to me, suppressing a warning to some extent is a Cop-out (no pun intended..."FXCop").</p>
  
  <p><strong>Example warning:</strong></p>
  
  <blockquote>
    <p>Do not raise exceptions in unexpected
    locations 'CustomObject.Equals(object)' creates an exception of type
    'ArgumentException'. Exceptions should not be raised in this type of
    method. If this exception instance might be raised, change this
    method's logic so it no longer raises an exception.</p>
  </blockquote>
  
  <p><strong>Reason for throwing this...</strong></p>
  
  <p>CustomObject.Equals(object) might try and compare CustomObject to FooBarObject...which aren't even of the same type, so in this instance, should I throw an exception, or just return false?</p>
  
  <hr>
  
  <p>In general, should I be really anal (for want of a better word) in making my code absolutely compliant, or will I come across situations where warning suppression will become necessary?</p>