Skip to content

Commit 68874f2

Browse files
CopilotBornToBeRoot
andcommitted
Add JSON exception handling in App.xaml.cs
Co-authored-by: BornToBeRoot <[email protected]>
1 parent 25d2073 commit 68874f2

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

Source/NETworkManager/App.xaml.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Diagnostics;
33
using System.IO;
44
using System.Linq;
5+
using System.Text.Json;
56
using System.Threading;
67
using System.Windows;
78
using System.Windows.Threading;
@@ -108,6 +109,24 @@ by BornToBeRoot
108109
SettingsManager.Initialize();
109110
ConfigurationManager.Current.ShowSettingsResetNoteOnStartup = true;
110111
}
112+
catch (JsonException ex)
113+
{
114+
Log.Error("Could not load application settings! JSON file is corrupted or invalid.");
115+
Log.Error(ex.Message + "-" + ex.StackTrace);
116+
117+
// Create backup of corrupted file
118+
var destinationFile =
119+
$"{TimestampHelper.GetTimestamp()}_corrupted_" + SettingsManager.GetSettingsFileName();
120+
File.Copy(SettingsManager.GetSettingsFilePath(),
121+
Path.Combine(SettingsManager.GetSettingsFolderLocation(), destinationFile));
122+
Log.Info($"A backup of the corrupted settings file has been saved under {destinationFile}");
123+
124+
// Initialize default application settings
125+
Log.Info("Initialize default application settings...");
126+
127+
SettingsManager.Initialize();
128+
ConfigurationManager.Current.ShowSettingsResetNoteOnStartup = true;
129+
}
111130

112131
// Upgrade settings if necessary
113132
var settingsVersion = Version.Parse(SettingsManager.Current.Version);

0 commit comments

Comments
 (0)