From 381cd64b1f1859ce0c78638b573bb3fccb8570ad Mon Sep 17 00:00:00 2001 From: "M. ter Woord" Date: Fri, 15 Dec 2017 17:40:54 +0100 Subject: [PATCH 1/3] Add the uri to the error message, that way nested load errors can be diagnosed much quicker. --- .../AvaloniaXamlLoaderPortableXaml.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs b/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs index 0419db5d0f..906bb00863 100644 --- a/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs +++ b/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs @@ -127,7 +127,19 @@ namespace Avalonia.Markup.Xaml using (var stream = assetLocator.Open(uri, baseUri)) { - return Load(stream, rootInstance, uri); + try + { + return Load(stream, rootInstance, uri); + } + catch (Exception e) + { + var uriString = uri.ToString(); + if (!uri.IsAbsoluteUri) + { + uriString = new Uri(baseUri, uri).AbsoluteUri; + } + throw new Exception("Error loading xaml at " + uriString, e); + } } } From ad02c53a4629d92b0aa0f301807c0e127e992082 Mon Sep 17 00:00:00 2001 From: "M. ter Woord" Date: Sat, 16 Dec 2017 10:38:49 +0100 Subject: [PATCH 2/3] - Add XamlLoadException - Use it for the new load exception info. --- src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj | 1 + .../Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj index cf6afbe620..0ce2a1a992 100644 --- a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj +++ b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj @@ -91,6 +91,7 @@ + diff --git a/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs b/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs index 906bb00863..de2a79c54e 100644 --- a/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs +++ b/src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoaderPortableXaml.cs @@ -138,7 +138,7 @@ namespace Avalonia.Markup.Xaml { uriString = new Uri(baseUri, uri).AbsoluteUri; } - throw new Exception("Error loading xaml at " + uriString, e); + throw new XamlLoadException("Error loading xaml at " + uriString, e); } } } From 09c7c32e1912f205a117a49e2f9459e91413ca5f Mon Sep 17 00:00:00 2001 From: "M. ter Woord" Date: Sat, 16 Dec 2017 13:24:27 +0100 Subject: [PATCH 3/3] Add the missing file. --- .../Avalonia.Markup.Xaml/XamlLoadException.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/Markup/Avalonia.Markup.Xaml/XamlLoadException.cs diff --git a/src/Markup/Avalonia.Markup.Xaml/XamlLoadException.cs b/src/Markup/Avalonia.Markup.Xaml/XamlLoadException.cs new file mode 100644 index 0000000000..e66b8ddf54 --- /dev/null +++ b/src/Markup/Avalonia.Markup.Xaml/XamlLoadException.cs @@ -0,0 +1,24 @@ +using System; +using System.Runtime.Serialization; + +namespace Avalonia.Markup.Xaml +{ + public class XamlLoadException: Exception + { + public XamlLoadException() + { + } + + protected XamlLoadException(SerializationInfo info, StreamingContext context): base(info, context) + { + } + + public XamlLoadException(string message): base(message) + { + } + + public XamlLoadException(string message, Exception innerException): base(message, innerException) + { + } + } +} \ No newline at end of file