private void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { FormFatalError.Result result = new FormFatalError.Result(); try { if (setting.ErrorLog) { Log.Write(Log.LogType.FatalError, $"想定外のエラーです。\n\n{e.Exception}"); } FormFatalError ff = new FormFatalError(e.Exception, result); ff.ShowDialog(this); switch (result.PlayList) { case 1: // 上書き保存 musicList.Save(setting.ListFile); break; case 2: // 別名保存 musicList.Save(PathMaker.GetAnotherName(setting.ListFile)); break; } switch (result.Setting) { case 1: // 上書き保存 setting.Save(); break; case 2: // 別名保存 setting.SaveAnotherName(); break; } } catch (Exception ex) { if (setting != null && setting.ErrorLog) { Log.Write(Log.LogType.FatalError, "エラー処理中にエラーが発生しました。\n\n" + ex.ToString()); } throw; } switch (result.Program) { case 1: // 正常終了 Application.Exit(); break; case 2: // エラー終了 throw e.Exception; } }
public void SaveAnotherName() { Save(PathMaker.GetAnotherName(saveFile)); }