【发布时间】:2018-07-07 15:35:53
【问题描述】:
我正在使用这种方法来确定来自 javafx 中 TextField 的输入字符串是否具有这种模式 AB123CD 与模式 ("\D{2}\d{3}\D{2}") 我正在使用 try catch 外壳,它捕获(手动)抛出的 PatternSyntaxException。 我问这个,因为 PatternSyntaxException 使用 String String Integer 构造函数,显示如下异常: 索引 int 处的错误 ^ 或类似的东西 我的问题是我不知道如何获得正确的索引以放入构造函数,或者我是否可以使用任何其他异常替换
这是代码的一部分:
try {
if(!tfTarga.getText().matches("\\D{2}\\d{3}\\D{2}"))
throw new PatternSyntaxException(tfTarga.getText(), tfTarga.getText(), 0);
else {
this.olCCar.add(new CCar(new ContractCars(new Contract(this.comboCont.getValue()), this.tfTarga.getText(), LocalDate.now(), Integer.parseInt(this.tfPrezzo.getText()))));
this.tfTarga.setText("");
this.tfPrezzo.setText("");
}
} catch (PatternSyntaxException e) {
alert("Error", "Format Error", e.getLocalizedMessage());
}
【问题讨论】:
-
请向我们展示完整的相关代码,或者至少足以让我们理解您的观点。您的正则表达式看起来不错,但这并不意味着您的代码没问题。
-
PatternSyntaxException 应该表示模式语法中的错误(顾名思义)。我(不应该表示字符串与正则表达式不匹配。只需在 if 块内显示您的警报即可。不需要异常。
标签: java exception patternsyntaxexception