title: Weird behaviour on async catch
body: <p>Lately I keep encountering a problem which I cannot replicate, nor wrap my head around</p>
  <pre><code>try { 
    const result = await makeReq()
    console.log(result)
  } catch (err) { 
    console.log(err)
  }
  </code></pre>
  <p>This is a basic try catch. If makeReq throws an error, then it will be caught by the catch since  I am using the async await syntax.</p>
  <p>BUT</p>
  <p>there are some errors on makeReq() that I cannot catch with a basic try catch block. In stead I need to do something like this.</p>
  <pre><code>try { 
    const result = await makeReq().catch(err =&gt; console.log('my interesting err: ', err)
    console.log(result)
  } catch (err) { 
    console.log(err)
  }
  </code></pre>
  <p>I would like somebody, anybody to explain and to help me mock an example of this.
  I believe that the &quot;.catch&quot; attached on the async/await call &quot;makeReq&quot; is for async errors thrown inside the call, but I have tried to replicate making a request, rejecting a new Promise in stead of an basic exception and it is still caught by the main &quot;catch&quot; in the &quot;try/catch&quot; block.</p>
  <p>Unhandled Promise Rejection is what I get if I do not attach the .catch on the await call.</p>
  <p>````makeReq``` is just a placeholder for some SAP api that I am using the created side effects (i.e. make a req/run a query - (cds.run - if anybody is interested))</p>