title: NextJS best practice for handling "Server Error" and "Client side error"
body: <p>Using NextJS, I see 2 kinds of errors:</p>
  <p><strong>Server Error</strong></p>
  <ul>
  <li>generated it using <code>throw new Error(...)</code> inside getInitialProps...</li>
  <li>it can occur due to some business logic or unexpected API response;</li>
  <li>screenshot:</li>
  </ul>
  <p><a href="https://i.stack.imgur.com/Hlfl1.png" rel="noreferrer"><img src="https://i.stack.imgur.com/Hlfl1.png" alt="Server error " /></a></p>
  <p><strong>Unhandled Runtime Error</strong></p>
  <ul>
  <li>generated it using <code>throw new Error(...)</code> inside a component</li>
  <li>it can occur due to some business logic;</li>
  <li>the error here is captured by the ErrorBoundary (which is set inside <code>_app.js</code>)</li>
  <li>screenshot:</li>
  </ul>
  <p><a href="https://i.stack.imgur.com/vRm2n.png" rel="noreferrer"><img src="https://i.stack.imgur.com/vRm2n.png" alt="Unhandled Runtime Error" /></a></p>
  <p><strong>Question</strong>:
  unhandled run time errors are captured inside Error Boundary (as they do in ReactJS)... how to best handle the 'server errors'... what is the best practice?</p>