如何将捕获的异常与java中的标准异常进行比较?
我的意思是在其一般形式(例如Exception)中捕获异常。并在catch块中找到更具体的形式(ArithemeticException)。
答案 0 :(得分:2)
使用instanceof
if( Exception instanceof ArithemeticException) {
// yes this is a type ArithemeticException
}
它告诉你运行时的类型。
除此之外,标准解决方案将是(有人刚评论过),catching more specific exception.
catch(ArithemeticException ae) {
}
catch(Exception ae) {
}
答案 1 :(得分:0)
除了使用实例之外,您始终可以使用Object.getclass()
catch(Exception ae) {
if (ae.getClass() == java.lang.ArithmeticException.class){
//Its an ArithmeticException
}
if(ae instanceof java.io.IOException){
//Its an IOException
}
}