【发布时间】:2012-08-25 20:32:13
【问题描述】:
对于 Java API 中的无效命令行参数,是否有适当的异常类,还是我必须自己创建?我试过搜索,但在 API 中找不到。
这是一个作业,所以我不能使用第三方库进行命令行解析。
【问题讨论】:
标签: java exception command-line-arguments
对于 Java API 中的无效命令行参数,是否有适当的异常类,还是我必须自己创建?我试过搜索,但在 API 中找不到。
这是一个作业,所以我不能使用第三方库进行命令行解析。
【问题讨论】:
标签: java exception command-line-arguments
命令行参数以String[] 的形式出现。如果您希望输入采用某种形式或某种顺序,您可以抛出一个您自己创建的异常来处理它(尽管抛出异常会终止程序;如果出现以下情况,您需要优雅地处理它这是必需的)。
【讨论】:
大多数时候,当接收到的参数无效时,抛出IllegalArgumentException 是一种常见的习惯用法。
公共类 IllegalArgumentException 扩展 RuntimeException
抛出 表示方法已通过非法或不适当的 论据。
【讨论】:
ArrayList 时,它将抛出 IllegalArgumentException。为什么?因为它不应该接收它,它不能以负容量工作;这是程序员的错误。这是讨论此问题的链接javapractices.com/topic/TopicAction.do?Id=129。
IllegalArgumentException。现在,如果你想终止程序并向用户显示他传递了无效的参数,那么你可以写信给System.err,告诉他们为什么参数无效。例如,javac 就是这样做的。如果您使用javac -abcd 调用它,它将以消息javac: invalid flag: -abcd 终止;在这种情况下没有理由抛出异常,恕我直言。
处理对程序没有意义的未知命令行参数或组合的最佳方法是显示错误消息并提供用法输出。
就我个人而言,根据命令行的复杂程度,我会创建一个名为“usage”(通常是静态)的方法,可以将可选的错误消息传递给它。
在解析传递给程序的命令行参数时,我将调用此方法并通过标志或直接退出,或者让usage方法调用为我退出。
但那只是我
【讨论】: