3

对于基于XML数据源的报告....

如果传入了错误数据,最好使用诸如variableXYZis之类的信息性消息使报告失败,0而不是在运行时出现除以零错误。

或者,variableXYZ必须指定而不是 aNPE或默认值。在某些情况下,没有不会误导的良好默认值。

有没有办法验证来自XML数据源的数据并抛出异常或以某种方式通知用户传入的数据无效?

我用 else 部分尝试了三元运算符,例如:

throw new RuntimeException("VariableXYZ is invalid: 0")

但是在评估表达式时它会死掉。

263:意外令牌:throw @ 第 263 行,第 49 列。

最后,我想在没有脚本的情况下执行此操作,就像 stock 的一部分一样iReport。这可能吗?是否有其他好的方法来验证导致正确错误消息的数据?

4

1 回答 1

0

我不相信这是可能的。

JasperReports 环境中使用的表达式实际上是“Java 表达式”(至少当您使用 Java 作为报表语言时)。根据Java教程

表达式是由变量、运算符和方法调用组成的构造,这些构造根据语言的语法构造,计算结果为单个值。

所以基本上,你不能将throw结构评估为一个值。你不能写myVar = throw RuntimeException("...");

但同时您可以在表达式中调用方法,因此也许您可以在类路径中添加一个引发错误的方法,例如。

于 2014-07-18T10:00:47.250 回答