<!--  As an open source project with a dedicated but small maintainer team, it can sometimes take a long time for issues to be addressed so please be patient and we will get back to you as soon as we can.
-->

### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:** 
  * <!-- (output of `node_modules/.bin/electron --version`) e.g. 4.0.3 --> 5.0.3
* **Operating System:** 
  * <!-- (Platform and Version) e.g. macOS 10.13.6 / Windows 10 (1803) / Ubuntu 18.04 x64 --> macOS 10.14
* **Last Known Working Electron version:** 
  * <!-- (if applicable) e.g. 3.1.0 --> n/a

### Expected Behavior
<!-- A clear and concise description of what you expected to happen. -->

`app.moveToApplicationsFolder` should throw when it fails, as the docs say.

### Actual Behavior
<!-- A clear and concise description of what actually happened. -->

It doesn't throw, in fact it even returns `true`.

### To Reproduce

- Have Foo v1 located in `/Applications/Foo.app`
- Open it
- Have Foo v2, still named `Foo.app`, located somewhere else
- Open it
- Use `app.moveToApplicationsFolder`.
- Instead of moving the app the currently open Foo v1 window will be focused, and `app.moveToApplicationsFolder` returns `true` instead of throwing.

shell/browser/api/atom_api_app.cc
app_metrics_.erase(pid);
}
base::FilePath App::GetAppPath() const {
  return app_path_;
}
void App::SetAppPath(const base::FilePath& app_path) {
  app_path_ = app_path;
}
#if !defined(OS_MACOSX)
void App::SetAppLogsPath(mate::Arguments* args) {
  base::FilePath custom_path;
  if (args->GetNext(&custom_path)) {
    if (!custom_path.IsAbsolute()) {
      args->ThrowError("Path must be absolute");
      return;
    }
    base::PathService::Override(DIR_APP_LOGS, custom_path);
  } else {
    base::FilePath path;
    if (base::PathService::Get(DIR_USER_DATA, &path)) {
      path = path.Append(base::FilePath::FromUTF8Unsafe(GetApplicationName()));
      path = path.Append(base::FilePath::FromUTF8Unsafe("logs"));
      base::PathService::Override(DIR_APP_LOGS, path);
    }
  }
}
#endif
base::FilePath App::GetPath(mate::Arguments* args, const std::string& name) {