2

我正在使用 boost optionsparser 来解析用户传递的命令行参数。现在程序有一个选项供用户指定他/她选择的日期格式。

像,

program -d %d/%m/%Y-%H:%M:%Sprogram -d %d/%m/%Y等等。

我面临的问题是, *如何检查用户传递的格式字符串的有效性?*

我现在能想到的唯一方法是将格式字符串传递给日期类并在那里使用异常处理。

但是,如果在解析选项时有另一种方法来检查有效性,那么我不需要传递数据并做不必要的事情,因为我在实际使用格式生成日期字符串之前做了一些计算。

4

1 回答 1

3

我不需要传递数据并做一些不必要的事情,因为我在实际使用格式生成日期字符串之前做了一些计算。

与其跳过箍来计算要传递给日期类以验证格式字符串的东西,不如直接让日期类为您格式化今天的日期,看看它是否会产生异常?

如果您尝试自己解析它,那么您只是在编写复制日期类所做的代码,但这也有可能遗漏一些细节。您可能会通过禁止某些应该被允许的事情来惹恼您的用户(我曾经在应用程序中遇到过这种情况,告诉我我的完全有效的电子邮件不是),并且无论如何您都必须处理日期类中的异常以防万一您解析格式时不要涵盖它涵盖的所有基础

于 2011-07-24T05:34:46.133 回答