Java multi catch中异常变量的类型是什么?

时间:2012-12-15 07:51:21

标签: java exception-handling java-7

  

可能重复:
  In a Java 7 multicatch block what is the type of the caught exception?

Java的新多捕获构造中的异常变量必须采用什么异常类型:

try{
   //-- do error prone stuff
}
catch (ExceptionTypeA | ExceptionTypeB e) {
   //-- e.methodA() or e.methodB() ?
}

如果ExceptionTypeAExceptionTypeB是使用自定义实用程序方法的自定义异常,那么,在编写代码时e是什么类型的?,e可以调用哪些方法?

1 个答案:

答案 0 :(得分:4)

e的类型将是ExceptionA和ExceptionB中最接近的父类型。如果他们只是扩展Exception,那么type将是Exception。

如果要为methodA if ExceptionAmethodB for ExceptionB之类的不同异常情况调用不同的方法,则不应使用multi-catch。如果ExceptionA和ExceptionB都扩展了一个常见的超类型并覆盖其中一个方法,那么你可以使用它。