java - 在多个catch块中管理重复代码

Sai*_*ran 1 java exception

我有以下代码

    try {
        // code
    } catch (Exception1 e1) {
        if (condition) {
            //code
        } else {
            throw e1;
        }
    } catch (Exception2 e2) {
        if (condition) {
            //code
        } else {
            throw e2;
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何使用私有方法在两个catch中模块化if-else块.

更具体地说,如果我使用一种方法如何将不同的异常传递给方法并适当地抛出它们?

我按照这个链接,但不明白如何传递和抛出正确的异常.

Dan*_*yMo 7

如果使用Java 7,则可以使用新的管道语法:

catch (Exception1|Exception2 e)
{
  if(condition) {
    //code
  } else {
    throw e;
  }
}
Run Code Online (Sandbox Code Playgroud)