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); } |
号
用户名和密码等等。