예제 #1
0
        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;
            }
        }
예제 #2
0
 public void SaveAnotherName()
 {
     Save(PathMaker.GetAnotherName(saveFile));
 }