finish()函数中的Java UDF失败

finish()函数中的Java UDF失败,java,apache-pig,Java,Apache Pig,我试图覆盖UDF的finish()方法,在该方法中,我检查两个实例变量的除法是否超过某个阈值 public void finish() { if (errors / total > threshold) { throw new IOException("QA failed"). } } 我的IDE一直希望我用try/catch块来包围它。我如何实现在UDF中失败的最初目标?我认为非法状态异常或IOError可能更适合您的需要,因为它们是未检查的异常,可能比

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

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

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

我认为
非法状态异常
IOError
可能更适合您的需要,因为它们是未检查的异常,可能比其他未检查的异常更接近您的
IOException

未经检查的异常,例如
RuntimeException
Error
及其子类(
IllegalStateException
IOError
包括在内),不需要throws子句,并且会使代码编译

如果需要,可以将您的
IOException
封装在上面的一个函数中(使用接受
Throwable
的构造函数),然后使用
Throwable.getCause()检索它