Java无效的命令行参数异常

Mic*_*ael 9 java exception command-line-parsing

Java API中是否存在适用于无效命令行参数的异常类,或者我是否必须创建自己的命令行参数?我试过搜索一个但在API中找不到任何内容.

这是一个赋值,所以我不能使用第三方库进行命令行解析.

Joã*_*lva 10

大多数情况下,当收到的参数无效时,抛出一个常见的习惯用法IllegalArgumentException.

公共类IllegalArgumentException扩展RuntimeException

抛出以指示方法已被传递非法或不适当的参数.

  • 我倾向于在程序无法在运行时恢复的情况下使用未经检查的异常.传递给方法的无效参数就是这种情况,这是程序员的错误.例如,当您尝试使用*negative*初始容量实例化一个`ArrayList`时,它将抛出一个`IllegalArgumentException`.为什么?因为它不应该接收它,并且它不能用负容量工作; 这是程序员的错误.这是一个讨论此问题的链接http://www.javapractices.com/topic/TopicAction.do?Id=129. (3认同)
  • 我确实考虑过使用它,但我认为 RuntimeExceptions(未检查异常)应该反映程序员做错的问题,而检查异常将用于程序员控制之外的事情。还是仅在设计 API 时才重要? (2认同)

Mad*_*mer 4

处理未知的命令行参数或对程序没有意义的组合的最佳方法是显示错误消息并提供用法输出。

就我个人而言,根据命令行的复杂性,我将创建一个名为“usage”(通常是静态的)的方法,可以将可选的错误消息传递给它。

在解析传递到程序中的命令行参数时,我将调用此方法并通过标志或直接退出,或者让usage方法调用退出。

但这只是我