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

标签 java exception-handling java-7

<分区>

Possible Duplicate:
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 ?

最佳答案

e 的类型将是 ExceptionA 和 ExceptionB 的最接近的父类型。如果它们只是扩展 Exception,则类型将为 Exception。

如果您为不同的异常情况调用不同的方法,例如 methodA if ExceptionAmethodB for ExceptionB,您不应该使用 multi-catch。如果 ExceptionA 和 ExceptionB 都扩展了一个公共(public)父类(super class)型并覆盖了其中一个方法,那么您就可以使用它。

关于java - Java multi catch 中异常变量的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13890423/

相关文章:

nio - Java 7 : get Path of resource (as object of type Path)

python - 在 python 2.5 中打印有关异常的信息?

java - 返回的基于 Jackson 的 JSON 在有效负载中添加了额外的斜杠

java - Swing JPanel 调整大小 : won't fit the contents of text file - cuts out text

java - 如何找到一个类的任何字段的变化值?

python - 在 Python 中子类化 float 类型,无法在 __init__() 中捕获异常

java - 这样的异常处理是否可以接受?

使用文件系统将java图像输出到zip文件为空

java - 在 NumPy 和 JPype 之间转换数组?

java - : "from.<Integer>"?是什么意思