是否“没有足够的命令行参数异常”?

时间:2017-05-01 17:55:52

标签: c#

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

2 个答案:

答案 0 :(得分:4)

您不应该使用例外。

确实,正如@Jennifer所回答的那样,ArgumentException是无效参数的标准例外。但这并不是它通常使用的,不是其他程序员期望阅读代码的内容,也不是用户期望运行程序的内容。

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

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

答案 1 :(得分:1)

ArgumentException是无效参数的标准。

  

当提供给方法的其中一个参数无效时抛出的异常。