From 29fa7c8b41bd8ae56f73777cc9a74421bffe1ae7 Mon Sep 17 00:00:00 2001 From: Cesar Zaragoza Cortes Date: Wed, 27 May 2020 12:10:44 -0700 Subject: [PATCH 1/8] Add the three standard constructors for the newly created exceptions. --- .../Exceptions/AzureQuantumException.cs | 12 +++++++++++- .../QuantumProcessorTranslationException.cs | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Azure/Azure.Quantum.Client/Exceptions/AzureQuantumException.cs b/src/Azure/Azure.Quantum.Client/Exceptions/AzureQuantumException.cs index 734827ab73f..2a691d4bf75 100644 --- a/src/Azure/Azure.Quantum.Client/Exceptions/AzureQuantumException.cs +++ b/src/Azure/Azure.Quantum.Client/Exceptions/AzureQuantumException.cs @@ -7,9 +7,19 @@ namespace Microsoft.Azure.Quantum.Exceptions { public class AzureQuantumException : Exception { - public AzureQuantumException(string message = "An exception related to the Azure quantum service or storage occurred.") + public AzureQuantumException() + : base("An exception related to the Azure quantum occurred.") + { + } + + public AzureQuantumException(string message) : base(message) { } + + public AzureQuantumException(string message, Exception inner) + : base(message, inner) + { + } } } diff --git a/src/Simulation/Common/Exceptions/QuantumProcessorTranslationException.cs b/src/Simulation/Common/Exceptions/QuantumProcessorTranslationException.cs index 5ef32c382dd..3ba8df02673 100644 --- a/src/Simulation/Common/Exceptions/QuantumProcessorTranslationException.cs +++ b/src/Simulation/Common/Exceptions/QuantumProcessorTranslationException.cs @@ -7,9 +7,19 @@ namespace Microsoft.Quantum.Simulation.Common.Exceptions { public class QuantumProcessorTranslationException : Exception { - public QuantumProcessorTranslationException(string message = "An exception occurred while performing a translation on a quantum processor.") + public QuantumProcessorTranslationException() + : base("An exception occurred while performing a translation on a quantum processor.") + { + } + + public QuantumProcessorTranslationException(string message) : base(message) { } + + public QuantumProcessorTranslationException(string message, Exception inner) + : base(message, inner) + { + } } } From f95729e9fea7c3e9eb93909e5867b12893d1e7c7 Mon Sep 17 00:00:00 2001 From: Cesar Zaragoza Cortes Date: Wed, 27 May 2020 12:52:14 -0700 Subject: [PATCH 2/8] Created QuantumMachineClientException and incorporated it (and other exceptions) into the standalone logic. --- .../Core/QuantumMachineClientException.cs | 25 +++++++++++ src/Simulation/EntryPointDriver/Azure.cs | 43 ++++++++++++++++++- 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 src/Simulation/Core/QuantumMachineClientException.cs diff --git a/src/Simulation/Core/QuantumMachineClientException.cs b/src/Simulation/Core/QuantumMachineClientException.cs new file mode 100644 index 00000000000..9406521c1ce --- /dev/null +++ b/src/Simulation/Core/QuantumMachineClientException.cs @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; + +namespace Microsoft.Quantum.Runtime +{ + public class QuantumMachineClientException : Exception + { + public QuantumMachineClientException() + : base("An exception occurred in the quantum machine client.") + { + } + + public QuantumMachineClientException(string message) + : base(message) + { + } + + public QuantumMachineClientException(string message, Exception inner) + : base(message, inner) + { + } + } +} diff --git a/src/Simulation/EntryPointDriver/Azure.cs b/src/Simulation/EntryPointDriver/Azure.cs index e5d2604c21e..929a6fa90ac 100644 --- a/src/Simulation/EntryPointDriver/Azure.cs +++ b/src/Simulation/EntryPointDriver/Azure.cs @@ -5,7 +5,9 @@ using System.CommandLine.Parsing; using System.Threading.Tasks; using Microsoft.Azure.Quantum; +using Microsoft.Azure.Quantum.Exceptions; using Microsoft.Quantum.Runtime; +using Microsoft.Quantum.Simulation.Common.Exceptions; using static Microsoft.Quantum.CsharpGeneration.EntryPointDriver.Driver; namespace Microsoft.Quantum.CsharpGeneration.EntryPointDriver @@ -48,9 +50,46 @@ internal static async Task Submit( } else { - var job = await machine.SubmitAsync( + try + { + var job = await machine.SubmitAsync( entryPoint.Info, input, new SubmissionContext { Shots = settings.Shots }); - DisplayJob(job, settings.Output); + DisplayJob(job, settings.Output); + } + catch (AzureQuantumException azureQuantumEx) + { + DisplayWithColor( + ConsoleColor.Red, + Console.Error, + "Something went wrong related to Azure quantum."); + + Console.WriteLine(); + Console.WriteLine(azureQuantumEx.Message); + return 1; + } + catch (QuantumMachineClientException quantumMachineClientEx) + { + DisplayWithColor( + ConsoleColor.Red, + Console.Error, + "Something went wrong related to the quantum machine client."); + + Console.WriteLine(); + Console.WriteLine(quantumMachineClientEx.Message); + return 1; + } + catch (QuantumProcessorTranslationException translationEx) + { + DisplayWithColor( + ConsoleColor.Red, + Console.Error, + "Something went wrong when performing translation to the intermediate representation used for the target quantum machine."); + + Console.WriteLine(); + Console.WriteLine(translationEx.Message); + return 1; + } + return 0; } } From efe4623003290c6e2f3c046d88f8c44205020df6 Mon Sep 17 00:00:00 2001 From: Cesar Zaragoza Cortes Date: Wed, 27 May 2020 12:59:17 -0700 Subject: [PATCH 3/8] Removed exception that is not needed. --- .../Core/QuantumMachineClientException.cs | 25 ------------------- src/Simulation/EntryPointDriver/Azure.cs | 11 -------- 2 files changed, 36 deletions(-) delete mode 100644 src/Simulation/Core/QuantumMachineClientException.cs diff --git a/src/Simulation/Core/QuantumMachineClientException.cs b/src/Simulation/Core/QuantumMachineClientException.cs deleted file mode 100644 index 9406521c1ce..00000000000 --- a/src/Simulation/Core/QuantumMachineClientException.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; - -namespace Microsoft.Quantum.Runtime -{ - public class QuantumMachineClientException : Exception - { - public QuantumMachineClientException() - : base("An exception occurred in the quantum machine client.") - { - } - - public QuantumMachineClientException(string message) - : base(message) - { - } - - public QuantumMachineClientException(string message, Exception inner) - : base(message, inner) - { - } - } -} diff --git a/src/Simulation/EntryPointDriver/Azure.cs b/src/Simulation/EntryPointDriver/Azure.cs index 929a6fa90ac..78f29ac4304 100644 --- a/src/Simulation/EntryPointDriver/Azure.cs +++ b/src/Simulation/EntryPointDriver/Azure.cs @@ -67,17 +67,6 @@ internal static async Task Submit( Console.WriteLine(azureQuantumEx.Message); return 1; } - catch (QuantumMachineClientException quantumMachineClientEx) - { - DisplayWithColor( - ConsoleColor.Red, - Console.Error, - "Something went wrong related to the quantum machine client."); - - Console.WriteLine(); - Console.WriteLine(quantumMachineClientEx.Message); - return 1; - } catch (QuantumProcessorTranslationException translationEx) { DisplayWithColor( From a1712f03e86fae449fca10f4e66e59d0b497db7c Mon Sep 17 00:00:00 2001 From: Cesar Zaragoza Cortes Date: Wed, 27 May 2020 13:04:33 -0700 Subject: [PATCH 4/8] Improved error message. --- src/Simulation/EntryPointDriver/Azure.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Simulation/EntryPointDriver/Azure.cs b/src/Simulation/EntryPointDriver/Azure.cs index 78f29ac4304..b0036d0c08b 100644 --- a/src/Simulation/EntryPointDriver/Azure.cs +++ b/src/Simulation/EntryPointDriver/Azure.cs @@ -72,7 +72,7 @@ internal static async Task Submit( DisplayWithColor( ConsoleColor.Red, Console.Error, - "Something went wrong when performing translation to the intermediate representation used for the target quantum machine."); + "Something went wrong when performing translation to the intermediate representation used by the target quantum machine."); Console.WriteLine(); Console.WriteLine(translationEx.Message); From 3bf4256d81d36a7d17090764f4bb5688a58c0204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Zaragoza=20Cort=C3=A9s?= Date: Wed, 27 May 2020 14:48:14 -0700 Subject: [PATCH 5/8] Update src/Simulation/EntryPointDriver/Azure.cs Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com> --- src/Simulation/EntryPointDriver/Azure.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Simulation/EntryPointDriver/Azure.cs b/src/Simulation/EntryPointDriver/Azure.cs index b0036d0c08b..802910d286f 100644 --- a/src/Simulation/EntryPointDriver/Azure.cs +++ b/src/Simulation/EntryPointDriver/Azure.cs @@ -74,8 +74,8 @@ internal static async Task Submit( Console.Error, "Something went wrong when performing translation to the intermediate representation used by the target quantum machine."); - Console.WriteLine(); - Console.WriteLine(translationEx.Message); + Console.Error.WriteLine(); + Console.Error.WriteLine(translationEx.Message); return 1; } From 1d19f0ce5add9eb4635f6a0b6ed817d6e82e3bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Zaragoza=20Cort=C3=A9s?= Date: Wed, 27 May 2020 14:48:32 -0700 Subject: [PATCH 6/8] Update src/Simulation/EntryPointDriver/Azure.cs Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com> --- src/Simulation/EntryPointDriver/Azure.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Simulation/EntryPointDriver/Azure.cs b/src/Simulation/EntryPointDriver/Azure.cs index 802910d286f..2c6dc5f7dc9 100644 --- a/src/Simulation/EntryPointDriver/Azure.cs +++ b/src/Simulation/EntryPointDriver/Azure.cs @@ -63,8 +63,8 @@ internal static async Task Submit( Console.Error, "Something went wrong related to Azure quantum."); - Console.WriteLine(); - Console.WriteLine(azureQuantumEx.Message); + Console.Error.WriteLine(); + Console.Error.WriteLine(azureQuantumEx.Message); return 1; } catch (QuantumProcessorTranslationException translationEx) From ff42f85b8b93c0c7ed8fd16ee5cd438413925c49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Zaragoza=20Cort=C3=A9s?= Date: Wed, 27 May 2020 14:51:23 -0700 Subject: [PATCH 7/8] Update src/Simulation/EntryPointDriver/Azure.cs Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com> --- src/Simulation/EntryPointDriver/Azure.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Simulation/EntryPointDriver/Azure.cs b/src/Simulation/EntryPointDriver/Azure.cs index 2c6dc5f7dc9..21e349cdd9e 100644 --- a/src/Simulation/EntryPointDriver/Azure.cs +++ b/src/Simulation/EntryPointDriver/Azure.cs @@ -61,7 +61,7 @@ internal static async Task Submit( DisplayWithColor( ConsoleColor.Red, Console.Error, - "Something went wrong related to Azure quantum."); + "Something went wrong when submitting the program to the Azure Quantum service."); Console.Error.WriteLine(); Console.Error.WriteLine(azureQuantumEx.Message); From 5578bfefa579e468676afe71e7608570a524313c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Zaragoza=20Cort=C3=A9s?= Date: Wed, 27 May 2020 14:51:58 -0700 Subject: [PATCH 8/8] Update src/Simulation/EntryPointDriver/Azure.cs Co-authored-by: Sarah Marshall <33814365+samarsha@users.noreply.github.com> --- src/Simulation/EntryPointDriver/Azure.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Simulation/EntryPointDriver/Azure.cs b/src/Simulation/EntryPointDriver/Azure.cs index 21e349cdd9e..5ecb84d4596 100644 --- a/src/Simulation/EntryPointDriver/Azure.cs +++ b/src/Simulation/EntryPointDriver/Azure.cs @@ -53,7 +53,7 @@ internal static async Task Submit( try { var job = await machine.SubmitAsync( - entryPoint.Info, input, new SubmissionContext { Shots = settings.Shots }); + entryPoint.Info, input, new SubmissionContext { Shots = settings.Shots }); DisplayJob(job, settings.Output); } catch (AzureQuantumException azureQuantumEx)