You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

当两个参数需至少一个非空时,应抛出哪种.NET异常?

处理二选一参数未提供的异常选择

核心结论

别用ArgumentNullException——这个异常是用来表示单个参数未提供或为null的情况,你的场景是两个参数的组合违反了“二选一”的约束,指定A或X都会让调用者误解为必须传该参数,而非二选一的规则。

推荐方案

直接用ArgumentException,搭配清晰无歧义的异常消息:

throw new ArgumentException("必须提供参数A或参数X(二选一,不能同时提供);当前两者均未提供。");

如果是.NET环境,也可以指定参数为你的模型类型名称(比如你的模型类叫ApiRequestParams),让调用者更清楚是整个模型的参数组合出了问题:

throw new ArgumentException("必须提供A或X其中一个(不可同时存在);当前两者都未传入。", nameof(ApiRequestParams));

适配你的场景

因为你的类是接收内部服务调用者的模型并做前置验证,异常消息一定要直白,让调用者立刻明白需要满足“二选一”的规则,不用猜到底漏传了哪个(本来就不是漏传单个,而是没满足组合要求)。

内容的提问来源于stack exchange,提问作者PMO1948

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:45:01