Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “有没有?”;命令行参数不足异常“;?_C# - Fatal编程技术网

C# “有没有?”;命令行参数不足异常“;?

C# “有没有?”;命令行参数不足异常“;?,c#,C#,如果我编写的程序需要2个以上的命令行参数,而用户给它的参数数量不足,我应该抛出什么异常?我想使用集成的异常处理。是无效参数的标准 当提供给方法的参数之一无效时引发的异常 是无效参数的标准 当提供给方法的参数之一无效时引发的异常 你不应该使用异常 事实上,正如@Jennifer所回答的,ArgumentException是无效参数的标准例外。但这并不是它通常的用途,也不是其他程序员希望阅读您的代码,也不是用户希望运行您的程序 ArgumentException通常表示程序员错误,您传入的参数无效。

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

是无效参数的标准

当提供给方法的参数之一无效时引发的异常

是无效参数的标准

当提供给方法的参数之一无效时引发的异常


你不应该使用异常

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

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


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

您不应该使用异常

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

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


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

为什么会出现异常?只需编写程序的用法,然后给出一个不等于0的退出代码。无论如何,您都无法真正处理来自调用应用程序的异常,而且由于您打算在之后关闭该程序,因此我认为没有必要进行异常处理。如果您希望该程序被人类使用,那么打印消息以便用户可以提供预期参数可能是有意义的。我处理的大多数命令行程序都打印“帮助”当给定的参数不足或参数与预期不匹配时,请使用此文件。如果有,我会选择ArgumentException,但确实如此,为什么要麻烦呢?请不要否决此投票。这是一个很好的问题,也是一个从社区经验中获益的好方法。为什么是例外?只需编写程序的用法,然后给出一个不等于0的退出代码。无论如何,您都无法真正处理来自调用应用程序的异常,而且由于您打算在之后关闭该程序,因此我认为没有必要进行异常处理。如果您希望该程序被人类使用,那么打印消息以便用户可以提供预期参数可能是有意义的。我处理的大多数命令行程序都打印“帮助”当给定的参数不足或参数与预期不匹配时,请使用此文件。如果有,我会选择ArgumentException,但确实如此,为什么要麻烦呢?请不要否决此投票。这是一个很好的问题,也是一个从社区经验中获益的好方法。如果您认为您的应用程序是一个网站,抛出异常将是一个500服务器错误。如果您发现代码中的问题是缺少参数,您可以询问更多信息或返回4xx客户端错误。如果您认为您的应用程序是一个网站,抛出异常将是一个500服务器错误。如果您发现代码中的问题是缺少参数,则可以询问更多信息或返回4xx客户端错误