From 48735a602a8323c3e36e5390e208344806241ed9 Mon Sep 17 00:00:00 2001 From: Frank Skare Date: Sat, 17 Jul 2021 16:45:34 +0200 Subject: [PATCH] #281 handling settings.xml crash --- src/Misc/Settings.cs | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/Misc/Settings.cs b/src/Misc/Settings.cs index 57d9b76..0dfd8ab 100644 --- a/src/Misc/Settings.cs +++ b/src/Misc/Settings.cs @@ -36,20 +36,35 @@ namespace mpvnet if (!File.Exists(SettingsFile)) return new AppSettings(); - XmlSerializer serializer = new XmlSerializer(typeof(AppSettings)); + try + { + XmlSerializer serializer = new XmlSerializer(typeof(AppSettings)); - using (FileStream fs = new FileStream(SettingsFile, FileMode.Open)) - return (AppSettings)serializer.Deserialize(fs); + using (FileStream fs = new FileStream(SettingsFile, FileMode.Open)) + return (AppSettings)serializer.Deserialize(fs); + } + catch (Exception ex) + { + Terminal.WriteError(ex.ToString()); + return new AppSettings(); + } } public static void Save(object obj) { - using (XmlTextWriter writer = new XmlTextWriter(SettingsFile, Encoding.UTF8)) + try { - writer.Formatting = Formatting.Indented; - writer.Indentation = 4; - XmlSerializer serializer = new XmlSerializer(obj.GetType()); - serializer.Serialize(writer, obj); + using (XmlTextWriter writer = new XmlTextWriter(SettingsFile, Encoding.UTF8)) + { + writer.Formatting = Formatting.Indented; + writer.Indentation = 4; + XmlSerializer serializer = new XmlSerializer(obj.GetType()); + serializer.Serialize(writer, obj); + } + } + catch (Exception ex) + { + Terminal.WriteError(ex.ToString()); } } }