- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 args4j 来解析提供给我的程序的参数。
这是我定义 2 个日期类型参数的代码。该处理程序仅解析给定的日期,如果日期格式错误,则抛出 CommandLineException。
@Option(name="-b", metaVar="<beginDate>", handler=DateOptionHandler.class, usage="...")
private Date beginDate;
@Option(name="-e", metaVar="<endDate>", handler=DateOptionHandler.class, usage="...")
private Date endDate;
如果 beginDate 或 endDate 引发异常,我需要能够返回不同的代码(int 值)。
目前,我的主要方法如下所示:
CmdLineParser parser = new CmdLineParser(this);
parser.setUsageWidth(120);
try {
parser.parseArgument(args);
} catch (CmdLineException e) {
/* Print usage if an error occurs during the parsing */
System.err.println(e.getMessage());
System.err.println("Usage : java LaunchProgram [options]");
e.getParser().printUsage(System.err);
/* What I need to do : */
if(optionWhichThrewTheException.equals("-b") return 2;
if(optionWhichThrewTheException.equals("-e") return 3;
/* Other arguments */
return -1;
}
但我不知道如何知道哪个参数引发了异常(我查看了 CmdLineException 方法,但什么也没发现)。
有没有办法获取无法解析的参数?
预先感谢您的帮助。
最佳答案
我从未使用过args4j,但查看其文档,似乎异常是由选项处理程序抛出的。因此,使用 BDateOptionHandler 和 EDateOptionHandler,它们会抛出包含所需信息的 CmdLineException 自定义子类:
public class BDateOptionHandler extends DateOptionHandler {
@Override
public int parseArguments(Parameters params) throws CmdLineException {
try {
super.parseArguments(params);
}
catch (CmdLineException e) {
throw new ErrorCodeCmdLineException(2);
}
}
}
public class EDateOptionHandler extends DateOptionHandler {
@Override
public int parseArguments(Parameters params) throws CmdLineException {
try {
super.parseArguments(params);
}
catch (CmdLineException e) {
throw new ErrorCodeCmdLineException(3);
}
}
}
...
try {
parser.parseArgument(args);
}
catch (CmdLineException e) {
...
if (e instanceof ErrorCodeCmdLineException) {
return ((ErrorCodeCmdLineException) e).getErrorCode();
}
}
关于java - args4j : What argument threw the CommandLineException during the parsing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384870/
我的 iPad 应用程序一直在日志中显示此消息...... : ImageIO: CreateMetadataFromXMPBufferInternal Threw error #203 (Dupl
我正在使用 sinon.JS 编写简单的单元测试。被测试的代码有一些类型检查,这会抛出 TypeError: Tx = class Tx { constructor(date) {
我正在使用 args4j 来解析提供给我的程序的参数。 这是我定义 2 个日期类型参数的代码。该处理程序仅解析给定的日期,如果日期格式错误,则抛出 CommandLineException。 @Opt
回归。升级插件后,我的应用程序不再启动。 这是我的 flutter 规范: Flutter 已在稳定 channel 上保持最新状态 Flutter 3.0.2 • channel 稳定 • http
我开发 WPF Prism 6 MVVM 多模块应用程序。直到今天一切正常。但是今天早上我决定清理并重建我的应用程序。在清理和重建后,我的应用程序运行时出现以下错误: PresentationFram
我正在我的 Java EE Maven 项目中使用这个库:https://github.com/bertrandmartel/speed-test-lib 我收到以下异常 java.lang.Clas
我使用假客户端微服务并收到以下错误 - $ mvn spring-boot:run [INFO] Scanning for projects... [INFO] [INFO] ------------
我已经创建了一个调用我的不同模式的服务。所以我有一个模态调用“Confirm Modal”,它可以接受 3 个参数:一个确认函数、一个拒绝函数和一个主体。这是以下模式: export class Co
我正在尝试访问静态列表的值。但是,当我尝试这样做时,会抛出此异常。 System.TypeInitializationException: The type initializer for 'Tips
我将 Spring MVC 与 Spring Boot 和 Thymeleaf 结合使用。我有返回 Thymeleaf 模板名称的普通 Controller 和用 @RepsonseBody 注释的
Objective: {objective 0x7fb7a49de030: + *0x7fb7a4d254b0.negError{id: 1392} + *UIButton:0x7fb7a4b877
我有一个用户报告了这个异常。我在这里和其他地方的研究表明这是一个静态构造函数错误。有关的类包含许多已初始化的静态字段。我认为它是其中之一,但我不确定如何找到它。该建议似乎是在静态构造函数中包含一个 t
我在调用 WCF 服务时收到如下 FaultException: 2012-04-02 16:26:00.3593|Error|System.ServiceModel.FaultException`1
我执行了一个 spark 程序,在该程序中,我使用客户框架将 Drools 规则应用于事实对象。我在 Flatmap 函数中调用了这个自定义框架,并且规则已成功执行,但在收集结果后我看到了以下异常。
我在执行项目时遇到上述错误。当我以正常方式执行它时,它运行良好,没有抛出任何错误。但是当我尝试通过 oozie 将其作为 java 操作调用来运行相同的程序时,它会抛出以下异常 Failing Ooz
我正在使用 JAX-RS jersey ExceptionMapper,我想知道是否有办法在方法 toResponse() 内部知道哪个方法(来自 API)抛出了异常。 示例(伪代码) @javax.
我是 Spring 新手,我正在尝试执行此应用程序,但遇到了这样的异常 SEVERE: Servlet [spring] in web application [/loginDB] threw loa
我是 android 和 xamarin 的新手。最近我根据 xamrarin 示例 TaskyPortable 创建了一个 android 应用程序。问题是每当执行以下代码时都会抛出错误。
我遇到了这个错误,我不知道出了什么问题我只是想检查用户名和密码,然后进入一个显示是否登录的页面 package cse; import java.io.IOException; import java
在 eclipse Juno 上的 Tomcat 6.0.26 中部署我的应用程序时出现以下错误。我将 struts 用于 Web 内容,将 spring 用于 ORM。 我已尝试清理和构建工作区。
我是一名优秀的程序员,十分优秀!