title: GraphQL: Returning null vs Throwing Error
body: <p>In case of errors, I always wonder whether I should return <code>null</code> or throw an error.</p>
  
  <p>Let's say I have a type <code>Person</code>:</p>
  
  <pre><code>type Person {
      firstName: String!
      lastName: String!
  }
  </code></pre>
  
  <p>I want to let the client search for a specific user. This could be done in 2 ways:</p>
  
  <p>Using a nullable type and possibly returning <code>null</code> when no user is found:</p>
  
  <pre><code>type Query {
      getPerson(firstName: String!): Person
  }
  </code></pre>
  
  <p>Using a non-nullable type and throwing an error when no user is found:</p>
  
  <pre><code>type Query {
      getPerson(firstName: String!): Person!
  }
  </code></pre>
  
  <p>Is there a right way to do this?</p>