From bd845488d78e265af78da2272f980c9ff2a9ff9a Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Sun, 22 Jul 2018 17:40:17 +0300 Subject: [PATCH] Added exception handling to MainMenuScreen.StartGame --- .../Source/Screens/MainMenuScreen.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs index f375ee30d..8804d17a6 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs @@ -368,7 +368,19 @@ namespace Barotrauma Directory.CreateDirectory(SaveUtil.TempPath); } - File.Copy(selectedSub.FilePath, Path.Combine(SaveUtil.TempPath, selectedSub.Name + ".sub"), true); + try + { + File.Copy(selectedSub.FilePath, Path.Combine(SaveUtil.TempPath, selectedSub.Name + ".sub"), true); + } + catch (IOException e) + { + DebugConsole.ThrowError("Copying the file \"" + selectedSub.FilePath + "\" failed. The file may have been deleted or in use by another process. Try again or select another submarine.", e); + GameAnalyticsManager.AddErrorEventOnce( + "MainMenuScreen.StartGame:IOException" + selectedSub.Name, + GameAnalyticsSDK.Net.EGAErrorSeverity.Error, + "Copying the file \"" + selectedSub.FilePath + "\" failed.\n" + e.Message + "\n" + Environment.StackTrace); + return; + } selectedSub = new Submarine(Path.Combine(SaveUtil.TempPath, selectedSub.Name + ".sub"), "");