{"record":{"id":"0790f6bae8f63f84","repo":"babalae/better-genshin-impact","slug":"error-0790f6","errorCode":null,"errorMessage":"请选择需要讨伐的首领","messagePattern":"请选择需要讨伐的首领","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"warning","filePath":"BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs","lineNumber":990,"sourceCode":"            ExpBasedPickupEnabled = false,\n            KazuhaPartyName = string.Empty,\n            BattleThresholdForLoot = -1,\n            OnlyPickEliteDropsMode = \"DisableAutoPickupForNonElite\",\n            Timeout = _taskParam.Timeout\n        };\n        return taskParam;\n    }\n\n    /// <summary>\n    /// 校验自动首领讨伐启动所需的 Boss、战斗策略、讨伐次数、补充树脂开关、重试次数和路线文件。\n    /// </summary>\n    /// <exception cref=\"Exception\">配置缺失、Boss 不支持、策略不存在或重试次数非法时抛出。</exception>\n    /// <exception cref=\"FileNotFoundException\">必需路线文件不存在时抛出。</exception>\n    private void Validate()\n    {\n        if (string.IsNullOrWhiteSpace(_taskParam.BossName))\n        {\n            throw new Exception(\"请选择需要讨伐的首领\");\n        }\n\n        if (!AutoBossData.IsSupportedBoss(_taskParam.BossName))\n        {\n            throw new Exception($\"暂不支持首领：{_taskParam.BossName}\");\n        }\n\n        if (_taskParam.ReviveRetryCount < 0)\n        {\n            throw new Exception(\"角色死亡后重试次数不能小于 0\");\n        }\n\n        if (_taskParam.SpecifyRunCount && _taskParam.RunCount < 1)\n        {\n            throw new Exception(\"指定讨伐次数必须大于 0\");\n        }\n\n        if (!_taskParam.SpecifyRunCount && (_taskParam.UseTransientResin || _taskParam.UseFragileResin))","sourceCodeStart":972,"sourceCodeEnd":1008,"githubUrl":"https://github.com/babalae/better-genshin-impact/blob/a7cb36712dcb409be610257d877fcea3597e9d6b/BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs#L972-L1008","documentation":"Validate 首项校验：_taskParam.BossName 为空白即抛 Exception，要求用户先选择要讨伐的首领。这是任务启动前置条件，未配置则无法确定路线与战斗。","triggerScenarios":"用户在配置界面未选择 Boss 就启动任务；BossName 序列化丢失；配置文件被手动清空。","commonSituations":"新用户首次使用未选 Boss；切换配置档后 BossName 未同步；UI 绑定异常导致值为空。","solutions":["在启动自动首领讨伐前于界面选择目标 Boss。","检查 AutoBossParam 配置文件，确认 BossName 非空且为支持的 Boss 名称。","在 UI 层对 BossName 为空时禁用启动按钮，避免运行时才报错。"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (string.IsNullOrWhiteSpace(_taskParam.BossName))\n{\n    // 在 UI 启动前禁用按钮，运行时无需到此\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["UI 在 BossName 为空时禁用启动按钮。","配置持久化时校验必填字段。"],"tags":["validation","config","genshin","autoboss"],"backgroundTag":null,"analyzedSha":"a7cb36712dcb409be610257d877fcea3597e9d6b","analyzedAt":"2026-08-13T16:44:57.548Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}