我想以不同的方式处理两种不同类型的异常,然后对两种异常类型进行一些相同的操作。如何在Java中做到这一点?
以下代码显示了我要执行的操作,但它不正确,因为一个异常不能被捕获两次。
正确的语法是什么?
try {
// do something...
}
catch (ExceptionA e) {
// actions for ExceptionA
}
catch (ExceptionB e) {
// actions for ExceptionB
}
catch (ExceptionA | ExceptionB e) {
// actions for ExceptionA & ExceptionB
}
最佳答案
使用catch (ExceptionA | ExceptionB e)
构造。在catch
块中,首先对instanceof
进行e
检查,然后分别处理异常类型。之后,对这两种类型进行通用处理。这样,您可以在一个catch
块中完成所有操作:
try {
// do something...
} catch (ExceptionA | ExceptionB e) {
if (e instanceof ExceptionA) {
// handling for ExceptionA
} else {
// handling for ExceptionB
}
// common handling for both exception types
}
关于java - 捕获多个异常时的特定且相同的操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31878763/