Не в состоянии поймать исключение - PullRequest
3 голосов
/ 30 марта 2012

Я использую SVNKit, и единственный способ проверить аутентификацию на сервере - использовать метод testConnection() класса SVNRepository.

Метод не возвращает логическое значение, но выдает исключение.

public abstract void testConnection()
                         throws SVNException

Проблема в том, что вместо перехвата я получаю сообщение об ошибке: coldfusion error in try catch (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 = "";
        }

Ответы [ 3 ]

7 голосов
/ 30 марта 2012

Ну, вполне возможно, что он выдает исключение, которое не является Exception - другим видом Throwable. Вы могли бы поймать Throwable, хотя это было бы довольно резко ... поймать его один раз, записать точный тип исключения, а затем поймать , что было бы разумно, хотя ...

2 голосов
/ 31 марта 2012

Вы пытались поймать Any вместо Exception?

Таким образом, вы обязательно поймаете все , даже если исключение не Exception, как предложил Джон.

0 голосов
/ 31 марта 2012

До

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

Тогда вы увидите фактическую ошибку.

...