我正在使用SVNKit,我发现测试Authentification到服务器的唯一方法是使用类testConnection()
的方法SVNRepository
。
该方法不返回布尔值但会抛出异常。
public abstract void testConnection()
throws SVNException
问题在于,我得到了一个冷血错误,而不是被捕获:
这是我的代码:
clientManager = CreateObject("java", "org.tmatesoft.svn.core.wc.SVNClientManager").newInstance();
authManagerJO = CreateObject("java", "org.tmatesoft.svn.core.wc.SVNWCUtil").
createDefaultAuthenticationManager(ARGUMENTS.username, JavaCast("String", ARGUMENTS.password));
authManagerJO.setAuthenticationForced(true);
clientManager.setAuthenticationManager(authManagerJO);
svnDavRepoFactory = CreateObject("java", "org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory").setup();
repositoryUrlJO = CreateObject("java", "org.tmatesoft.svn.core.SVNURL").parseURIDecoded(APPLICATION.svn_repository_audifiles);
svnRepository = clientManager.createRepository(repositoryUrlJO, true);
try{
svnRepository.testConnection();
}
catch (Exception e){
svnRepository = "";
}
答案 0 :(得分:7)
嗯,它完全有可能抛出一个不是Exception
的异常 - 另一种Throwable
。你可以捕获Throwable
,虽然那会非常苛刻......捕获一次,记录确切的异常类型,然后捕捉 是合理的。 ..
答案 1 :(得分:2)
您是否尝试抓取Any
代替Exception
?
这样,即使异常不是像Jon建议的Exception
,你也一定会抓住所有。
答案 2 :(得分:0)
做
catch (any e) {
write dump(e);
abort;
}
然后你会看到实际的错误。