babalae/better-genshin-impact · warning · Exception
请选择需要讨伐的首领
Error message
请选择需要讨伐的首领
What it means
Validate 首项校验:_taskParam.BossName 为空白即抛 Exception,要求用户先选择要讨伐的首领。这是任务启动前置条件,未配置则无法确定路线与战斗。
Source
Thrown at BetterGenshinImpact/GameTask/AutoBoss/AutoBossTask.cs:990
ExpBasedPickupEnabled = false,
KazuhaPartyName = string.Empty,
BattleThresholdForLoot = -1,
OnlyPickEliteDropsMode = "DisableAutoPickupForNonElite",
Timeout = _taskParam.Timeout
};
return taskParam;
}
/// <summary>
/// 校验自动首领讨伐启动所需的 Boss、战斗策略、讨伐次数、补充树脂开关、重试次数和路线文件。
/// </summary>
/// <exception cref="Exception">配置缺失、Boss 不支持、策略不存在或重试次数非法时抛出。</exception>
/// <exception cref="FileNotFoundException">必需路线文件不存在时抛出。</exception>
private void Validate()
{
if (string.IsNullOrWhiteSpace(_taskParam.BossName))
{
throw new Exception("请选择需要讨伐的首领");
}
if (!AutoBossData.IsSupportedBoss(_taskParam.BossName))
{
throw new Exception($"暂不支持首领:{_taskParam.BossName}");
}
if (_taskParam.ReviveRetryCount < 0)
{
throw new Exception("角色死亡后重试次数不能小于 0");
}
if (_taskParam.SpecifyRunCount && _taskParam.RunCount < 1)
{
throw new Exception("指定讨伐次数必须大于 0");
}
if (!_taskParam.SpecifyRunCount && (_taskParam.UseTransientResin || _taskParam.UseFragileResin))View on GitHub (pinned to a7cb36712d)
Solutions
- 在启动自动首领讨伐前于界面选择目标 Boss。
- 检查 AutoBossParam 配置文件,确认 BossName 非空且为支持的 Boss 名称。
- 在 UI 层对 BossName 为空时禁用启动按钮,避免运行时才报错。
Defensive patterns
Strategy: validation
Validate before calling
if (string.IsNullOrWhiteSpace(_taskParam.BossName))
{
// 在 UI 启动前禁用按钮,运行时无需到此
} Prevention
- UI 在 BossName 为空时禁用启动按钮。
- 配置持久化时校验必填字段。
When it happens
Trigger: 用户在配置界面未选择 Boss 就启动任务;BossName 序列化丢失;配置文件被手动清空。
Common situations: 新用户首次使用未选 Boss;切换配置档后 BossName 未同步;UI 绑定异常导致值为空。
Related errors
AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13).
Data as JSON: /api/errors/0790f6bae8f63f84.
Report an issue: GitHub.