title: Difference between return Error and throw Error
body: <p>I found the following code in a project, that I do not understand.:</p>
  
  <pre><code>get(key, store = null) {
      if (!key) {
        return new Error('There is no key to get!');
      }
  
      let dbstore = this.localforage;
  
      if (store !== null) {
        dbstore = store;
      }
  
      return dbstore
        .getItem(key)
        .then(function(value) {
          return value;
        })
        .catch(function(err) {
          return new Error('The key (' + key + ") isn't accessible: " + err);
        });
    }
  </code></pre>
  
  <p>Why <code>return new Error('There is no key to get!');</code> instead of <code>throw new Error('There is no key to get!');</code>?</p>
  
  <p>Also why not throw an error in the <code>catch</code> block?</p>