title: when does XPathExpression.evaluate throw?
body: <p>Going through the <a href="http://download.oracle.com/javase/6/docs/api/javax/xml/xpath/XPath.html#compile%28java.lang.String%29" rel="nofollow"><code>XPath.compile</code></a> API, I was under the impression that it would return a valid <code>XPathExpression</code> or throw.</p>
  
  <p>Indeed, it doesn't make sense that any compiler would return an object that is not 'runnable'.</p>
  
  <p>Therefore I was a little surprised that a valid <code>XPathExpression</code> could <em>still</em> throw when <code>evaluate</code>ing a document, especially since according to it's description,</p>
  
  <blockquote>
    <p>XPathExpressionException represents an error in an XPath expression</p>
  </blockquote>
  
  <p>Does that make sense?  Can a <code>compile</code>d expression still have an error?</p>