在finish()函数中失败Java UDF

时间:2014-10-23 17:53:40

标签: java apache-pig

我试图覆盖UDF的finish()方法,我检查两个实例变量的划分是否超过某个阈值。

public void finish() {
    if (errors / total > threshold) {
        throw new IOException("QA failed").
    }
}

我的IDE一直希望我用try / catch块包围它。如何实现我在UDF中失败的最初目标?

1 个答案:

答案 0 :(得分:0)

我认为IllegalStateExceptionIOError可能更适合您的需求,因为它们是未经检查的例外,并且可能比其他未经检查的例外情况更接近IOException

未经检查的异常,例如RuntimeExceptionError及其子类(包括IllegalStateExceptionIOError),不需要throws子句,并且会使代码编译。

如果您愿意,可以将IOException包含在以上某个内容中(使用带有Throwable的构造函数)并稍后使用Throwable.getCause()

检索它