3

私はSVNKitを使用していますが、サーバーへの認証をテストするために見つけた唯一の方法testConnection()は、クラスのメソッドを使用することですSVNRepository

このメソッドはブール値を返しませんが、例外をスローします。

public abstract void testConnection()
                         throws SVNException

問題は、キャッチされる代わりに、ColdFusionエラーが発生することです。 try catchでのcoldfusionエラー(SVNRepository.testConnection())

これが私のコードです:

        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 = "";
        }
4

3 に答える 3

7

まあ、それがそうではない例外をスローしている可能性は完全にありますException-別の種類のThrowable。キャッチすることはできますがThrowable、それはかなり厳しいでしょう...一度キャッチし、正確な例外タイプをログに記録してから、それをキャッチすることは合理的ですが...

于 2012-03-30T19:43:23.550 に答える
2

Any代わりにキャッチしてみましたExceptionか?

このようにして、例外がJonが提案したようなものでなくても、すべてを確実にキャッチできます。Exception

于 2012-03-30T20:24:17.537 に答える
0

行う

catch (any e) {
    write dump(e);
    abort;
}

次に、実際のエラーが表示されます。

于 2012-03-30T20:28:18.643 に答える