title: Catching a fetch error
body: <p>My understanding is that a piece of code throwing error anywhere in callstack can be caught at final catch block. for fetch error, when no internet is available, when I make APIwithoutCatch in callCallAPI, error is not caught. while APIwithCatch catches its own error. All other errors e.g. 404, are caught at both places, wherever I want.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>async function APIwithcatch() {
    try {
      var response = await fetch("http://wwww.dfdfdf.com/user.json");
      return response;
    } catch (e) {
      console.log(e);
    }
  }
  
  async function APIwithoutcatch() {
    var response = await fetch("http://wwww.dfdfdf.com/user.json");
    return response;
  }
  
  function callCallAPI() {
    try {
      // return APIwithcatch();
      return APIwithoutcatch();
    } catch (e) {
      console.log(e);
    }
  }
  callCallAPI();</code></pre>
  </div>
  </div>
  
  My assumption that any error should flow down callstack is correct or not?
  What is special about net::ERR_INTERNET_DISCONNECTED error?</p>