我试图覆盖UDF的finish()方法,我检查两个实例变量的划分是否超过某个阈值。
public void finish() {
if (errors / total > threshold) {
throw new IOException("QA failed").
}
}
我的IDE一直希望我用try / catch块包围它。如何实现我在UDF中失败的最初目标?
答案 0 :(得分:0)
我认为IllegalStateException
或IOError
可能更适合您的需求,因为它们是未经检查的例外,并且可能比其他未经检查的例外情况更接近IOException
。
未经检查的异常,例如RuntimeException
,Error
及其子类(包括IllegalStateException
和IOError
),不需要throws子句,并且会使代码编译。
如果您愿意,可以将IOException
包含在以上某个内容中(使用带有Throwable
的构造函数)并稍后使用Throwable.getCause()