places-menu: Catch errors during async operation

Uncaught errors in async functions don't provide a good stack, because
the unhandled promise rejection masks the error that triggered it.

While we already handle *expected* errors inside the function, make
sure we catch all errors to get useful stack information for unexpected
errors as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
(cherry picked from commit e0b68a319e)
This commit is contained in:
Florian Müllner
2024-11-30 14:43:14 +01:00
parent 566e7806b0
commit f3144d472a
+2 -2
View File
@@ -68,7 +68,7 @@ class PlaceInfo extends EventEmitter {
await this.file.mount_enclosing_volume(0, op.mountOp, null);
if (tryMount)
this._ensureMountAndLaunch(context, false);
this._ensureMountAndLaunch(context, false).catch(logError);
} catch (e) {
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
Main.notifyError(_('Failed to mount volume for “%s”').format(this.name), e.message);
@@ -80,7 +80,7 @@ class PlaceInfo extends EventEmitter {
launch(timestamp) {
let launchContext = global.create_app_launch_context(timestamp, -1);
this._ensureMountAndLaunch(launchContext, true);
this._ensureMountAndLaunch(launchContext, true).catch(logError);
}
getIcon() {