From 19b7a180b5fa60508945d207fc7a86f820f01d2d Mon Sep 17 00:00:00 2001 From: Hai Cao Date: Wed, 8 Mar 2023 14:27:08 -0800 Subject: [PATCH] Expose inner exceptions when sendError (#1919) * send inner exception * trim * name * format --- .../Hosting/Protocol/MessageDispatcher.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs index 0c1d3530..f5231839 100644 --- a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs +++ b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageDispatcher.cs @@ -159,12 +159,26 @@ namespace Microsoft.SqlTools.Hosting.Protocol } catch (Exception ex) { - Logger.Error($"{requestType.MethodName} : {ex}"); - await requestContext.SendError(ex.Message); + string errorMessage = GetErrorMessage(ex); + Logger.Error($"{requestType.MethodName} : {errorMessage}"); + await requestContext.SendError(errorMessage); } }); } + private string GetErrorMessage(Exception e) + { + List errors = new List(); + + while (e != null) + { + errors.Add(e.Message); + e = e.InnerException; + } + + return errors.Count > 0 ? string.Join(" ---> ", errors) : string.Empty; + } + public void SetEventHandler( EventType eventType, Func eventHandler)