From 11304d9090484e2340cfb6fbb1eb5e70fd4223f9 Mon Sep 17 00:00:00 2001 From: Benjin Dubishar Date: Tue, 4 Apr 2023 13:34:49 -0700 Subject: [PATCH] Fix issue where errors during project update were swallowed (#22612) (#22615) * adding errors * Fixing bug where errors occurring during updating project got swallowed * removing unnecessary "vscode" --- .../src/controllers/projectController.ts | 15 ++++++++++----- .../sql-database-projects/src/models/project.ts | 14 ++++++++++---- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/extensions/sql-database-projects/src/controllers/projectController.ts b/extensions/sql-database-projects/src/controllers/projectController.ts index c394d3a0f9..6d0a24e0cc 100644 --- a/extensions/sql-database-projects/src/controllers/projectController.ts +++ b/extensions/sql-database-projects/src/controllers/projectController.ts @@ -298,12 +298,17 @@ export class ProjectsController { argument: this.buildHelper.constructBuildArguments(project.projectFilePath, this.buildHelper.extensionBuildDirPath, project.sqlProjStyle) }; - const crossPlatCompatible: boolean = await Project.checkPromptCrossPlatStatus(project, true /* blocking prompt */); + try { + const crossPlatCompatible: boolean = await Project.checkPromptCrossPlatStatus(project, true /* blocking prompt */); - if (!crossPlatCompatible) { - // user rejected updating for cross-plat - void vscode.window.showErrorMessage(constants.projectNeedsUpdatingForCrossPlat(project.projectFileName)); - return '' + if (!crossPlatCompatible) { + // user rejected updating for cross-plat + void vscode.window.showErrorMessage(constants.projectNeedsUpdatingForCrossPlat(project.projectFileName)); + return '' + } + } catch (error) { + void vscode.window.showErrorMessage(utils.getErrorMessage(error)); + return ''; } try { diff --git a/extensions/sql-database-projects/src/models/project.ts b/extensions/sql-database-projects/src/models/project.ts index 6ecbbbdda1..ac867f62ee 100644 --- a/extensions/sql-database-projects/src/models/project.ts +++ b/extensions/sql-database-projects/src/models/project.ts @@ -184,11 +184,17 @@ export class Project implements ISqlProject { } } else { // use "void" with a .then() to not block the UI thread while prompting the user - void window.showErrorMessage(constants.updateProjectForCrossPlatform(project.projectFileName), constants.yesString, constants.noString).then(async (result) => { - if (result === constants.yesString) { - await project.updateProjectForCrossPlatform(); + void window.showErrorMessage(constants.updateProjectForCrossPlatform(project.projectFileName), constants.yesString, constants.noString).then( + async (result) => { + if (result === constants.yesString) { + try { + await project.updateProjectForCrossPlatform(); + } catch (error) { + void window.showErrorMessage(utils.getErrorMessage(utils.getErrorMessage(error))); + } + } } - }); + ); } return project.isCrossPlatformCompatible;