我现在正在查看NonFatal提取器实现,并对其实际存在疑问:
IllegalArgumentException
这是处理Scala中的异常的常见模式吗?说,我ExecutionException
,InterruptedException
和IOException
包含在IllegalArgumentException
中(API要求这样做)。如果是ExecutionException.getCause == IllegalArgumentException
和object CorruptedData {
def apply(t: Throwable): Boolean = t match {
case t: IllegalArgumentException =>
true
case t: ExecutionException if t.getCause.isInstanceOf[IllegalArgumentException] =>
true
case _ => false
}
def unapply(t: Throwable): Option[Throwable] = Some(t).filter(apply)
}
,则表示某些数据已损坏。所以我现在倾向于做以下事情:
{{1}}
做这样的事情常见吗?与标准库相同。