title: Why does ActiveRecord have this idiosyncrasy?
body: <p>The following query raises an exception:</p>
  
  <pre><code>User.find(4)
  </code></pre>
  
  <p>Whereas the following query returns nil:</p>
  
  <pre><code>User.find(:first, :conditions =&gt; "id = 4")
  </code></pre>
  
  <p>Do database wrappers ordinarily return 'nil' or 'null' etc when a record isn't found or do they raise exceptions? Is there something special about the addition of the 'first' keyword? Is this expected behavior or rails magic fizzling?</p>