title: In javadoc, what is the difference between the tags @throws and @exception?
body: <p>Take the following implementation of a array-based stack of chars for example:</p>
  
  <pre><code>public char peek() throws Underflow {
      if (!isEmpty()) {
          return stack[pos];
      } else {
          throw new Underflow("Peeking at an empty stack.");
      }
  }
  </code></pre>
  
  <p>Back when I'm using just a text editor I always use the @exception tag, but now my IDE (Netbeans) used @throws when generating the javadoc.</p>
  
  <p>So my question is, what is the difference between the two and when should one be preferred over another (using the above code for example)?</p>