title: Is there any reason to throw a DivideByZeroException?
body: <p>Are there any cases when it's a good idea to <code>throw</code> errors that can be avoided?</p>
  
  <p>I'm thinking specifically of the <code>DivideByZeroException</code> and <code>ArgumentNullException</code></p>
  
  <p>For example:</p>
  
  <pre><code>double numerator = 10;
  double denominator = getDenominator();
  
  if( denominator == 0 ){
     throw new DivideByZeroException("You can't divide by Zero!");
  }
  </code></pre>
  
  <p>Are there any reasons for throwing an error like this?</p>
  
  <p><strong>NOTE:</strong> I'm not talking about <strong>catching</strong> these errors, but specifically in knowing if there are ever good reasons for throwing them.</p>
  
  <p><strong>JUST TO REITERATE</strong>:</p>
  
  <p>I KNOW that in the example I gave you'd probably be better off handling the error. Perhaps the question should be rephrased. Are there any reasons to <code>throw</code> one of these errors instead of handling it at <strong>this</strong> location. </p>