关于java:我可以使用多个try catch块来抛出多个错误或异常

Can I make use of multiple try catch blocks to throws multiple errors or exceptions

下面的代码是通过Java所有的Git Press命令,如果我不使用TestCcatch块运行它成功地推文件,但我没有得到如何扔错误,如果用户输入错误的URL和用户名和密码,使用Testand catch块,任何人都可以在代码中正确编辑。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  public void pushRepo (String repoUrl, String gitdirectory, String username, String password) throws GitAPIException
{

      Git git = null;
    try {
        git = Git.open(new File(gitdirectory));
    } catch (IOException e1) {
        System.out.println("it is not git directory");
    }
      RemoteAddCommand remoteAddCommand = git.remoteAdd();
      remoteAddCommand.setName("origin");
      try {
      remoteAddCommand.setUri(new URIish(repoUrl));
      System.out.println("file added");
      }catch (Exception e) {
           System.out.println("Invalid RemoteUrl");
        }
      remoteAddCommand.call();
      git.add().addFilepattern(".").call();
      git.commit().setMessage("commited").call();
      PushCommand pushCommand = git.push();
      try {
      pushCommand.setCredentialsProvider(new UsernamePasswordCredentialsProvider(username, password));
      pushCommand.setRemote("origin").add("master").call();
      System.out.println("push file");
      }catch(Exception e)
      {
          System.out.println("Invalid username and password");
      }

    }
}

如果我输入的值不正确,无论是URL、用户名还是密码,它都会给出"无效用户名和密码"之类的信息。


尝试创建自定义验证器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class ValidationErrorException extends Exception {

private List<String> errors;

public ValidationErrorException(List<String> errors) {
    super("Validation Errors.");
    setErrors(errors);
}

public ValidationErrorException(String message, List<String> errors) {
    super(message);
    setErrors(errors);
}

public void setErrors(List<String> errors) {
    this.errors = errors;
}

public List<String> getErrors() {
    return errors;
  }
 }

加入你的功能。

throws ValidationErrorException

然后使用

1
2
3
4
5
6
7
try {
        // write code for check url
    } catch (Exception ex) {
        List<String> errors = new ArrayList<>();
        errors.add("Invalid URL...");
        throw new ValidationErrorException(errors);
    }

用户名和密码等等。