如何将捕获的异常与java中的标准异常进行比较

时间:2015-08-10 09:54:05

标签: java

如何将捕获的异常与java中的标准异常进行比较?

我的意思是在其一般形式(例如Exception)中捕获异常。并在catch块中找到更具体的形式(ArithemeticException)。

2 个答案:

答案 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
        }

}