是否出现“命令行参数不足异常”?

Iva*_*kin 2 c#

如果我编写的程序需要超过 2 个命令行参数并且用户给它的参数数量不足,我应该抛出什么异常?我想使用集成的异常处理。

小智 5

您不应该使用异常。

事实上,正如 @Jennifer 所回答的,ArgumentException这是无效参数的标准例外。但这并不完全是它通常的用途,不是其他程序员期望阅读您的代码的用途,也不是用户期望运行您的程序的用途。

ArgumentException通常表示程序员错误,传递了无效的参数。它表明代码中存在错误:您应该修复代码以传递有效参数,或者在知道没有有效参数时避免调用。

在这种情况下,这是不可能的。输入无效参数Main是用户错误,而不是程序员错误,并且用户错误应该以不同的方式处理。抛出异常会导致糟糕的用户体验:未处理的异常会导致程序崩溃并导致 Windows 在线搜索解决方案。这里应该做的就是打印一条错误消息,并且最好以非零状态代码退出。没有任何异常类型具有这种效果。