我正在使用第三方库,其中异常导致类型为RETCODE_ERROR
的类。这是层次结构的选择。
不确定类是否实现Throwable
,我希望对超类RETCODE_ERROR
进行模式匹配。
try {
// perform action here
} catch {
case e.asInstanceOf[RETCODE_ERROR] => // handle exception
}
这是否有效,还是有更好的方法?
答案 0 :(得分:6)
所有的荣誉应该实际上转到@Jesper:
try {
// perform action here
} catch {
case e: RETCODE_ERROR => // handle exception
}
如果您希望与某些子集类匹配,可以很好地枚举它们:
try {
// perform action here
} catch {
case e: (RETCODE_NO_DATA | RETCODE_ALREADY_DELETED) => // handle exception
}
答案 1 :(得分:0)
建议不要使用asInstanceOf。而且,这段代码不对。
案例e.asInstanceOf [RETCODE_ERROR] => //处理异常
相反,你可以使用这样的模式匹配:
try {
// do something
} catch {
case e: RETCODE_ERROR => // handle it
}