如何从java中的catch块调用方法?

dku*_*rni 2 java exception-handling try-catch

要求:如果存在任何异常,请调用重新验证数据的方法

我的实施:

private void one() {
    try {
        //Valid data
    }catch(Exception e) {
    two();
    }
}

private void two() {
     //Process data with another input
     //On entry,
     one();
}
Run Code Online (Sandbox Code Playgroud)

我意识到我的用法不正确.我应该怎么处理这个?

Pet*_*rey 5

您可以使用递归完全按照建议的方式执行此操作.我不知道问题是什么.就个人而言,使用循环通常比使用递归更简单.然而,我不会只捕获所有异常.您可能希望以不同方式处理不同的异常.

private void one() {
  while(true) {
    try {
        //Valid data
        break;
    }catch(InvalidArgumentException e) { // or what ever you expect.
        two();
    }
  }
}

private void two() {
     //Process data with another input
     //On entry,
}
Run Code Online (Sandbox Code Playgroud)

甚至

private void one() {
  while(true) {
    try {
        //Valid data
        break;
    } catch(InvalidArgumentException e) { // or what ever you expect.
        // Process data with another input
        // On entry,
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • +1我打算给出类似的答案:) (2认同)